合并 2 个日期不相等的年、月、日、小时数据框
Merge 2 Dataframes with Unequal Dates of Year, Month, Day, Hour
我一直在寻找如何合并两个日期不相等的数据框。每个日期列都是年、月、日、时列中的整数数据类型。假设 df1 看起来像这样:
site data1 year month day hour
0 A 5.4 2018 01 01 0
1 A 5.1 2018 01 01 1
2 A 3.7 2021 01 01 0
3 A 6.4 2021 01 01 1
4 A 7.5 2021 01 01 2
5 A 3.9 2021 02 01 0
df2 看起来像这样:
site data2 year month day hour
0 A 3.9 2021 01 01 0
1 A 6.0 2021 01 01 1
2 A 7.9 2021 01 01 2
3 A 4.2 2021 02 01 0
4 A 6.8 2021 02 01 1
5 A 7.2 2021 02 01 2
6 A 4.4 2021 02 01 3
而且,我需要 df3 在合并后看起来像这样:
site data1 data2 year month day hour
0 A 3.7 3.9 2021 01 01 0
1 A 6.4 6.0 2021 01 01 1
2 A 7.5 7.9 2021 01 01 2
3 A 3.9 4.2 2021 02 01 0
谢谢。我尝试过的尝试没有达到预期的结果。我已经将此作为我的最新尝试进行了尝试,并且出于某种原因从 df1 重复了小时数据值。这是我尝试过的内部合并:
df3 = df2.merge(df1, on=['site','year','month','day','hour'],how='inner')
最明显的是 df1.merge(df2),您可以更具体地使用:
df = pd.merge(df1,df2,left_on=['site','year','month','day','hour'],right_on=['site','year','month','day','hour'] ,how='inner')
你得到了你想要的结果:
site data1 year month day hour data2
0 A 3.7 2021 1 1 0 3.9
1 A 6.4 2021 1 1 1 6.0
2 A 7.5 2021 1 1 2 7.9
3 A 3.9 2021 2 1 0 4.2
整理您可以使用的列df[['site','data1','data2','year','month','hour']]
我一直在寻找如何合并两个日期不相等的数据框。每个日期列都是年、月、日、时列中的整数数据类型。假设 df1 看起来像这样:
site data1 year month day hour
0 A 5.4 2018 01 01 0
1 A 5.1 2018 01 01 1
2 A 3.7 2021 01 01 0
3 A 6.4 2021 01 01 1
4 A 7.5 2021 01 01 2
5 A 3.9 2021 02 01 0
df2 看起来像这样:
site data2 year month day hour
0 A 3.9 2021 01 01 0
1 A 6.0 2021 01 01 1
2 A 7.9 2021 01 01 2
3 A 4.2 2021 02 01 0
4 A 6.8 2021 02 01 1
5 A 7.2 2021 02 01 2
6 A 4.4 2021 02 01 3
而且,我需要 df3 在合并后看起来像这样:
site data1 data2 year month day hour
0 A 3.7 3.9 2021 01 01 0
1 A 6.4 6.0 2021 01 01 1
2 A 7.5 7.9 2021 01 01 2
3 A 3.9 4.2 2021 02 01 0
谢谢。我尝试过的尝试没有达到预期的结果。我已经将此作为我的最新尝试进行了尝试,并且出于某种原因从 df1 重复了小时数据值。这是我尝试过的内部合并:
df3 = df2.merge(df1, on=['site','year','month','day','hour'],how='inner')
最明显的是 df1.merge(df2),您可以更具体地使用:
df = pd.merge(df1,df2,left_on=['site','year','month','day','hour'],right_on=['site','year','month','day','hour'] ,how='inner')
你得到了你想要的结果:
site data1 year month day hour data2
0 A 3.7 2021 1 1 0 3.9
1 A 6.4 2021 1 1 1 6.0
2 A 7.5 2021 1 1 2 7.9
3 A 3.9 2021 2 1 0 4.2
整理您可以使用的列df[['site','data1','data2','year','month','hour']]