基于其他数据帧的数据帧条件填充

2024-04-16 06:41:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧。第一个数据帧df包含5分钟(返回)数据和索引的小时和分钟

import pandas as pd
dates = 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.hour
df['Minute'] = df.index.minute
tmp = df['Ret'].groupby([df['Hour'],df['Minute']]).mean().to_frame()

所以现在tmp包含一个多索引数据帧,它有两个级别:小时和分钟。我现在想做的是在df中创建一个新列,从数据帧tmp中选择正确的值,并将它们放回df数据帧中

因此,基本上我想在df中创建一个新列,方法是在tmp中对df['Hour']df['Minute']进行查找,然后返回正确的值,但我似乎无法让它工作


Tags: 数据importpandasdfdateindexasrange
1条回答
网友
1楼 · 发布于 2024-04-16 06:41:49

使用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

相关问题 更多 >