2

次の形式の大きな 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はないかもしれません。

4

0 に答える 0