Pythonで'datetime.timedelta'
オブジェクトをに変換するにはどうすればよいですか? 'pandas.tseries.offsets'
例:datetime.timedelta(1)
へto_offset('1D')
?
長い話: OHLC バーを使用して Pandas DataFrame をプロットしたいのですが、データ ポイントが多すぎると、バーが細すぎてグラフが読めなくなります。その場合、チャートのバーが 100 未満になるように、より長い期間のバーを計算したいと考えています。
DataFrame df が与えられた場合 (データは 2 秒から 1 か月の周期の間であれば何でもかまいません)
ステップ 1: データフレーム期間を取得:
source_period = min([t2-t1 for t2, t1 in zip(df.index[1:], df.index[:-1])])
(ここでは df.index.freq を使用できません)
ステップ 2: ターゲット期間の見積もり:
target_period = source_period * float(len(df.index))/100
ステップ 3: データのグループ結合
grouped_df = df.groupby(pd.TimeGrouper(period_convert(target_period ))).agg(ohlc_combine)
period_convert
どこから手をつけていいのかわからない機能が恋しいです。
出発点を得るために、そうするための私のばかげて醜いハック:
target_datapoints = 100
source_period = min([t2-t1 for t2, t1 in zip(df.index[1:], df.index[:-1])])
target_period = source_period.total_seconds() * float(len(df.index)) / target_datapoints
target_offset = str(int(target_period)) + 'S'
target_df = df.groupby(pd.TimeGrouper(target_offset)).agg(ohlc_combine)
問題: 扱いにくい、遅い、エッジの効いたケースが処理されない...