質問編集履歴

1

情報の修正

2018/07/26 09:11

投稿

k0908
k0908

スコア102

test CHANGED
File without changes
test CHANGED
@@ -1,165 +1 @@
1
1
  コードを実行すると、TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex' とエラーが出ました。
2
-
3
-
4
-
5
- 画像のような時系列の箱ひげ図のグラフをプロットしたいです。jupyternotebook上で
6
-
7
- ```ここに言語を入力
8
-
9
- import pandas as pd
10
-
11
- df = pd.read_table(“score.txt", names=["名前","最低点","最高点","平均値","中央値"])
12
-
13
- df
14
-
15
- ```
16
-
17
-
18
-
19
- とコードを書いて実行すると、
20
-
21
- ```ここに言語を入力
22
-
23
- “名前” ”最低点” ”最高点” ”平均値” ”中央値”
24
-
25
- Tom 30 90 69 73
26
-
27
- Tom 40 100 80 79
28
-
29
- Tom 44 60 50 52
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
- ```
38
-
39
- のようなDataFrameがあって正常に出力されていることが確認できました。しかし、以下のコードを
40
-
41
- ```ここに言語を入力
42
-
43
- def _ohlcv(columns, 最低点=None, 最高点=None, 平均値=None, 中央値=None):
44
-
45
- auto_dict = {str(v).lower(): v for v in columns}
46
-
47
- my_dict = {'最低点': 最低点, '最高点': 最高点, '平均値': 平均値,
48
-
49
- '中央値': 中央値}
50
-
51
- updater = {k: v for k, v in my_dict.items() if v}
52
-
53
- auto_dict.update(updater)
54
-
55
- return auto_dict
56
-
57
-
58
-
59
-
60
-
61
- def ohlc2(self, 最低点=None, 最高点=None, 平均値=None, 中央値=None):
62
-
63
- auto_dict = _ohlcv(self.asfreq().columns, 最低点, 最高点, 平均値, 中央値)
64
-
65
- try:
66
-
67
- agdict = {auto_dict['最低点']: '最低点',
68
-
69
- auto_dict['最高点']: '最高点',
70
-
71
- auto_dict['平均値']: '平均値',
72
-
73
- auto_dict['中央値']: '中央値'}
74
-
75
- except KeyError as e:
76
-
77
- raise KeyError('Columns not enough {}'.format(*e.args))
78
-
79
- return self.agg(agdict)
80
-
81
-
82
-
83
- df.resample('H').ohlc2().head()
84
-
85
-
86
-
87
- qf = cf.QuantFig(df.resample('H').ohlc2(), name='test')
88
-
89
- qf.add_volume()
90
-
91
- qf.iplot()
92
-
93
- ```
94
-
95
- 実行すると、
96
-
97
- ```ここに言語を入力
98
-
99
- ---------------------------------------------------------------------------
100
-
101
- TypeError Traceback (most recent call last)
102
-
103
- <ipython-input-40-001d36f3a426> in <module>()
104
-
105
- 21 return self.agg(agdict)
106
-
107
- 22
108
-
109
- ---> 23 df.resample('H').ohlc2().head()
110
-
111
- 24
112
-
113
- 25 qf = cf.QuantFig(df.resample('H').ohlc2(), name='test')
114
-
115
-
116
-
117
- ~/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py in resample(self, rule, how, axis, fill_method, closed, label, convention, kind, loffset, limit, base, on, level)
118
-
119
- 7102 axis=axis, kind=kind, loffset=loffset,
120
-
121
- 7103 convention=convention,
122
-
123
- -> 7104 base=base, key=on, level=level)
124
-
125
- 7105 return _maybe_process_deprecations(r,
126
-
127
- 7106 how=how,
128
-
129
-
130
-
131
- ~/anaconda3/lib/python3.6/site-packages/pandas/core/resample.py in resample(obj, kind, **kwds)
132
-
133
- 1146 """ create a TimeGrouper and return our resampler """
134
-
135
- 1147 tg = TimeGrouper(**kwds)
136
-
137
- -> 1148 return tg._get_resampler(obj, kind=kind)
138
-
139
- 1149
140
-
141
- 1150
142
-
143
-
144
-
145
- ~/anaconda3/lib/python3.6/site-packages/pandas/core/resample.py in _get_resampler(self, obj, kind)
146
-
147
- 1274 raise TypeError("Only valid with DatetimeIndex, "
148
-
149
- 1275 "TimedeltaIndex or PeriodIndex, "
150
-
151
- -> 1276 "but got an instance of %r" % type(ax).__name__)
152
-
153
- 1277
154
-
155
- 1278 def _get_grouper(self, obj, validate=True):
156
-
157
-
158
-
159
- TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'
160
-
161
- ```
162
-
163
-
164
-
165
- とエラーが出ました。このエラーをググると、timestamps を設定していないときに出る、と読んだのですが、今回日時のデータがないので、timestamps が設定できないです。時系列の箱ひげ図のグラフをプロットするにはどのように修正すれば良いでしょうか?