python 通过考虑特定列中的值来合并两个 Dataframe

yxyvkwin  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(140)

我有两个这样的 Dataframe :
df1:

DayYear_Count      Time
0                                           
2018-03-26 00:00:00             84  00:00:00
2018-03-26 01:00:00             84  01:00:00
2018-03-26 02:00:00             84  02:00:00
2018-03-26 03:00:00             84  03:00:00
2018-03-26 04:00:00             84  04:00:00

DF2:

Time       Temp  DayYear_Count
0      00:00:00   6.065167             84
1      01:00:00   5.692167             84
2      02:00:00   5.151917             84
3      03:00:00   4.636500             84
4      04:00:00   4.277417             84

我希望将两个数据框合并为一个数据框,其中“Time”和“DayYear_Count”列重合。因此,我将只在“Temp”列中的这些位置上显示值。类似于:

DayYear_Count      Time     Temp  
0                                           
2018-03-26 00:00:00             84  00:00:00   6.065
2018-03-26 01:00:00             84  01:00:00   3.055
2018-03-26 02:00:00             84  02:00:00   "Nan"

我已经输入了随机值来给予这个想法。

d5vmydt9

d5vmydt91#

DataFrame.merge使用左联接,为了避免MultiIndex,将其转换为列0

df1['Time'] = pd.to_datetime(df1['Time']).dt.time
df2['Time'] = pd.to_datetime(df2['Time']).dt.time

df1['DayYear_Count'] = df1['DayYear_Count'].astype(int)
df2['DayYear_Count'] = df2['DayYear_Count'].astype(int)

df = df1.reset_index().merge(df2, on=['DayYear_Count','Time'], how='left').set_index(0)

相关问题