我有兩個資料框 df1 和 df2。df1 具有每日時間范圍(包括小時、分鐘和秒),另一個具有每月時間范圍,如下所示:
df1:
Index Value
2016-01-01 00:00:00 99
2016-01-02 00:00:00 105
2016-01-03 00:00:00 68
df2(需要縮減為每日):
Index Date Value1 .............................Value 10
0 31/01/2016 15 ............................ 98
1 28/02/2016 25 ............................ 92
2 31/03/2016 58 ............................ 68
我想要這樣的輸出:
Index Date Value Value1 ..........................Value 10
0 2016-01-01 00:00:00 99 15 ......................... 98
1 2016-01-02 00:00:00 105 15 ......................... 98
2 2016-01-03 00:00:00 68 15 ......................... 98
等(二月和三月等)
復制資料:
df1 = pd.DataFrame({'Index': ['2016-01-01 00:00:00', '2016-01-02 00:00:00', '2016-01-03 00:00:00'],
'Value': [99, 105, 68]})
df2 = pd.DataFrame({'Index': [0, 1, 2],
'Date': ['31/01/2016', '28/02/2016', '31/03/2016'],
'Value1': [15, 25, 58],
'Value10': [98, 92, 68]})
uj5u.com熱心網友回復:
您可以為每個 DataFrame 和(將引數設定為,因為我們不想丟失任何資料)在其上創建一個虛擬的“月份”(使用pd.to_datetime并將其轉換為物件)列。最后,洗掉不需要的列。'datetime64[M]'mergehow'outer'
df2['Month'] = pd.to_datetime(df2['Date']).astype('datetime64[M]')
df1['Month'] = pd.to_datetime(df1['Index']).astype('datetime64[M]')
out = (df1.merge(df2, on='Month', how='outer')
.drop(['Month', 'Date', 'Index_y'], axis=1)
.rename(columns={'Index_x':'Date'}))
輸出:
Date Value Value1 Value10
0 2016-01-01 00:00:00 99.0 15 98
1 2016-01-02 00:00:00 105.0 15 98
2 2016-01-03 00:00:00 68.0 15 98
3 NaN NaN 25 92
4 NaN NaN 58 68
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/410905.html
標籤:
上一篇:如何動態自動更新日期和時間
