我有兩個數(shù)據(jù)框。第一個數(shù)據(jù)幀df包含 5 分鐘(返回)數(shù)據(jù)和索引的小時和分鐘import pandas as pddates = pd.date_range(start='2018-01-01', end='2018-01-05', freq='5T')df = pd.DataFrame(np.random.randn(len(dates),1), index=dates, columns=list(['Ret']))df['Hour'] = df.index.hourdf['Minute'] = df.index.minutetmp = df['Ret'].groupby([df['Hour'],df['Minute']]).mean().to_frame()所以現(xiàn)在tmp包含一個多索引數(shù)據(jù)幀,它有兩個級別的小時和分鐘。我現(xiàn)在想要做的是創(chuàng)建一個新列,在df其中我從數(shù)據(jù)框中選擇正確的值tmp并將它們放回df數(shù)據(jù)框中。所以基本上我想df通過查找df['Hour']和df['Minute']輸入tmp并返回正確的值來創(chuàng)建一個新列,但我似乎無法讓它工作。
1 回答

幕布斯7119047
TA貢獻1794條經(jīng)驗 獲得超8個贊
使用merge,但要注意語法:
result = df.merge(tmp, left_on=['Hour', 'Minute'], right_index=True, how='left')
result.head()
Ret_x Hour Minute Ret_y
2018-01-01 -0.751599 0 0 -0.035756
2018-01-02 -0.650874 0 0 -0.035756
2018-01-03 -1.110701 0 0 -0.035756
2018-01-04 0.944097 0 0 -0.035756
2018-01-05 1.390296 0 0 -0.035756
添加回答
舉報
0/150
提交
取消