簡體   English   中英

基於其他數據幀的數據幀的條件填充

[英]Conditional fill up of dataframe based on other dataframe

我有兩個數據框。 第一個數據幀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數據幀。

所以基本上我想通過在tmp查找df['Hour']df['Minute']並返回正確的值來在df創建一個新列,但我似乎無法讓它工作。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM