第一个CSV文件。
DATE TIME ENG-1 ENG-2 ENG-3 ENG-4 ENG-5 ENG-6
'01 10 2016' '06:35:00' 0.28596 0.29029 0.28756 0.28571 0.30868 0.14109
'01 10 2016' '06:40:00' 0.44193 0.45012 0.44324 0.44423 0.46907 0.21463
'01 10 2016' '06:45:00' 0.62864 0.64037 0.62642 0.63543 0.66269 0.31124
'01 10 2016' '06:50:00' 0.80956 0.83893 0.80395 0.83088 0.85561 0.39706
'01 10 2016' '06:55:00' 1.03745 1.06965 1.03274 1.06828 1.09404 0.51961
'01 10 2016' '07:00:00' 1.27753 1.32139 1.27205 1.31855 1.3468 0.64307
'01 10 2016' '07:05:00' 1.47166 1.52537 1.45165 1.52041 1.54714 0.74423
第二个CSV文件
DATE TIME A B C D
'01 10 2016' '06:00:00' 27 74 0 4
'01 10 2016' '06:30:00' 27 74 1.9 4
'01 10 2016' '07:00:00' 27 74 0 4
'01 10 2016' '07:30:00' 28 70 7.4 4
'01 10 2016' '08:00:00' 28 70 9.3 4
我想将这两个CSV组合到第三个CSV文件中,只获取日期和时间值匹配的值。
结果CSV文件的结合应该是这样的。
DATE TIME ENG-1 ENG-2 ENG-3 ENG-4 ENG-5 ENG-6 A B C D
'01 10 2016' '07:00:00' 1.27753 1.32139 1.27205 1.31855 1.3468 0.64307 27 74 0 4
答案 0 :(得分:0)
您需要使用参数inner
的默认on
加入merge
:
df = pd.merge(df1, df2, on=['DATE','TIME'])
print (df)
DATE TIME ENG-1 ENG-2 ENG-3 ENG-4 ENG-5 \
0 '01 10 2016' '07:00:00' 1.27753 1.32139 1.27205 1.31855 1.3468
ENG-6 A B C D
0 0.64307 27 74 0.0 4
如果只有DATE
和TIME
列(用于加入)同时位于DataFrames
且所有其他列名称不同,则on
也可以省略:
df = pd.merge(df1, df2)
print (df)
DATE TIME ENG-1 ENG-2 ENG-3 ENG-4 ENG-5 \
0 '01 10 2016' '07:00:00' 1.27753 1.32139 1.27205 1.31855 1.3468
ENG-6 A B C D
0 0.64307 27 74 0.0 4
同样需要相同的dtype
列加入,否则不匹配。