如何在Python中將'datetime.timedelta'
對象轉換爲'pandas.tseries.offsets'
?例如:datetime.timedelta(1)
至to_offset('1D')
?長篇小說:我想繪製一張熊貓數據框與OHLC酒吧,但是當數據點太多時,酒吧太瘦,圖表變得不可讀。在這種情況下,我想計算一個更長的時間段,以便在我的圖表上獲得小於100個條。Python將類型'datetime.timedelta'轉換爲'pandas.tseries.offsets'
給出一個數據幀DF(數據可以每月週期性第二之間的任何東西)
第1步:數據幀週期:
source_period = min([t2-t1 for t2, t1 in zip(df.index[1:], df.index[:-1])])
(我不能使用df.index。 freq here)
第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)
問題:醜陋的,緩慢的,前衛的情況下沒有處理......
你在做什麼? – Jeff
@Jeff我在問題 – Sam