两个DataFrame的匹配值存储在相应的“名称”和“航班”列中。 当第一个DataFrame存储距离时,另一个存储日期:
import pandas as pd
distances = {'names': ['A', 'B','C'] ,'distances':[100, 200, 300]}
dates = {'flights': ['C', 'B', 'A'] ,'dates':['1/1/16', '1/2/16', '1/3/16']}
distancesDF = pd.DataFrame(distances)
datesDF = pd.DataFrame(dates)
distancesDF:
distances names
0 100 A
1 200 B
2 300 C
datesDF:
dates flights
0 1/1/16 A
1 1/2/16 B
2 1/3/16 C
我想将它们合并到单个Dataframe中,使匹配的实体与相应的距离和日期同步。因此得到的DataFame看起来像这样:
resultDF:
distances names dates
0 100 A 1/1/16
1 200 B 1/2/16
2 300 C 1/3/16
完成它的方法是什么?
答案 0 :(得分:2)
除了位置索引之外,没有什么能将这些数据帧联系在一起。您可以使用pd.concat
pd.concat([distancesDF, datesDF.dates], axis=1)
解决编辑和@ kartik的评论
如果我们创建dfs以匹配显示的内容。
distances = {'names': ['A', 'B','C'] ,'distances':[100, 200, 300]}
dates = {'flights': ['A', 'B', 'C'] ,'dates':['1/1/16', '1/2/16', '1/3/16']}
distancesDF = pd.DataFrame(distances)
datesDF = pd.DataFrame(dates)
然后以下两个选项产生相同且可能需要的结果。
<强> 合并 强>
distancesDF.merge(datesDF, left_on='names', right_on='flights')[['distances', 'names', 'dates']]
<强> 加入 强>
distancesDF.join(datesDF.set_index('flights'), on='names')
都产生