我有一個資料框,每分鐘都有納斯達克股票指數的價格波動。在交易中,重要的是要考慮不同時間單位的資料(了解短期、中期和長期趨勢......)
于是我使用了 Pandas 的 resample() 方法,在原來的 1 分鐘的基礎上,在 5 分鐘內得到了價格的資料框:
df1m = pd.DataFrame({
'Time' : ['2022-01-11 09:30:00', '2022-01-11 09:31:00', '2022-01-11 09:32:00', '2022-01-11 09:33:00', '2022-01-11 09:34:00', '2022-01-11 09:35:00', '2022-01-11 09:36:00' , '2022-01-11 09:37:00' , '2022-01-11 09:38:00' ,
'2022-01-11 09:39:00', '2022-01-11 09:40:00'],
'Price' : [1,2,3,4,5,6,7,8,9,10,11]})
df1m['Time'] = pd.to_datetime(df1m['Time'])
df1m.set_index(['Time'], inplace =True)
df5m = df1m.resample('5min').first()
我將列名重命名為 5min :
df5m.rename(columns={'Price' : 'Price5'})
不幸的是,當兩個資料幀(1 分鐘和 5 分鐘)放在一起時,不再考慮列名的更改:
df_1m_5m = pd.concat([df1m, df5m], axis=1)
如何明確地重命名為 5 分鐘資料創建的列,并避免為不同的資料使用兩次相同的列名?
uj5u.com熱心網友回復:
您可以使用:
df5m = df1m.resample('5min').first().add_suffix('5')
df_1m_5m = pd.concat([df1m, df5m], axis=1)
輸出:
>>> df_1m_5m
Price Price5
Time
2022-01-11 09:30:00 1 1.0
2022-01-11 09:31:00 2 NaN
2022-01-11 09:32:00 3 NaN
2022-01-11 09:33:00 4 NaN
2022-01-11 09:34:00 5 NaN
2022-01-11 09:35:00 6 6.0
2022-01-11 09:36:00 7 NaN
2022-01-11 09:37:00 8 NaN
2022-01-11 09:38:00 9 NaN
2022-01-11 09:39:00 10 NaN
2022-01-11 09:40:00 11 11.0
您忘記將結果重新分配給您的資料框:
df5m = df5m.rename(columns={'Price' : 'Price5'})
# OR
df5m.rename(columns={'Price' : 'Price5'}, inplace=True)
輸出:
>>> df5m
Price5
Time
2022-01-11 09:30:00 1
2022-01-11 09:35:00 6
2022-01-11 09:40:00 11
uj5u.com熱心網友回復:
相信您的問題是您的重命名中缺少選項inplace=true。默認情況下它是 false,因此它會生成 DataFrame 的副本,而不是編輯現有的 DataFrame。將其設定為 true 將編輯您現有的 DataFramedf5m
df5m.rename(columns={'Price' : 'Price5'},inplace=True)
df_1m_5m 的輸出:
Price Price5
Time
2022-01-11 09:30:00 1 1.0
2022-01-11 09:31:00 2 NaN
2022-01-11 09:32:00 3 NaN
2022-01-11 09:33:00 4 NaN
2022-01-11 09:34:00 5 NaN
2022-01-11 09:35:00 6 6.0
2022-01-11 09:36:00 7 NaN
2022-01-11 09:37:00 8 NaN
2022-01-11 09:38:00 9 NaN
2022-01-11 09:39:00 10 NaN
2022-01-11 09:40:00 11 11.0
uj5u.com熱心網友回復:
同意 Stephan 和 Corralien 的觀點。你也可以試試這個:
df1m['Price5'] = df1m.resample('5T').first()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/441293.html
下一篇:我怎樣才能改變唯一元素的間隙
