次の形式の大きな pandas データフレームを使用しています。
In [15]: data.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 2869438 entries, 2011-09-26 22:00:00.078000 to 2011-12-30 22:14:57.413000
Data columns (total 3 columns):
Symbol 2869438 non-null values
Price 2869438 non-null values
Vol 2869438 non-null values
dtypes: float64(1), int64(1), object(1)
以下を使用して、これを従来の週に分割することができました。
weeks = data.groupby(data.index.week)
weeks.groups.keys()
Out[19]: [39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52]
この特定のデータフレームでは、週は次のように定義されます'Sun Mon Tue Wed Thu Fri'
from pandas.tseries.offsets import CustomBusinessDay
weekmask = 'Sun Mon Tue Wed Thu Fri'
bday = CustomBusinessDay(weekmask=weekmask)
weeks = data.groupby(bday)
これにより、週番号ではなく TimeStamp インデックスが付けられたグループが得られます。
これはおそらくこれを達成するための最良の方法ではありません.誰かが代替技術を提供できますか?
アップデート:
私が使用しているデータセットの頭と尾は次のとおりです。
data.head()
Symbol Price Vol
DateTime
2011-09-26 22:00:00.078000 CLX11 81.48 1
2011-09-26 22:00:00.192000 CLX11 81.46 1
2011-09-26 22:00:00.343000 CLX11 81.47 1
2011-09-26 22:00:00.443000 CLX11 81.46 1
2011-09-26 22:00:00.443000 CLX11 81.45 4
data.tail()
Symbol Price Vol
DateTime
2011-12-30 22:14:40.877000 CLG12 99.05 1
2011-12-30 22:14:43.287000 CLG12 99.06 1
2011-12-30 22:14:55.165000 CLG12 99.04 1
2011-12-30 22:14:55.165000 CLG12 99.03 1
2011-12-30 22:14:57.413000 CLG12 99.06 3
私がやりたいことは、このデータを週に分割して CSV ファイルに書き出すことだけです。従来の週 (月~日) については既にこれを行うことができますが、ここでは、日~金として定義された週に分割したいと考えています。
誰でもそれを手伝ってもらえますか?ユースケースには合っているようですが、の使用は私が望むものでCustomBuisnessDay
はないかもしれません。