我有以下两个不同大小的 Dataframe 。
df1: (with 40,000 data)
Date Latitude Longitude Car_Accident
2/10/22 43.69 -79.4 40
2/10/22 43.69 -79.4 34
2/20/22 43.68 -79.0 30
2/20/22 43.50 -79.1 35
............................
..............................
df2: (with 20,000 data)
Date Latitude Longitude Route
2/20/22 43.68 -79.0 111
2/20/22 43.50 -79.1 123
2/10/22 43.69 -79.4 124
2/10/22 43.69 -79.4 124
............................
.............................
我要合并它们,并对三个不同列应用条件
如果df1['Date']的值==df2['Date'] & df1[纬度]==df2[纬度] & df1[经度]==df2[经度]
然后,我们将添加具有满足此条件的数据的列
示例
final df:
Date Latitude Longitude Car_Accident Route
2/20/22 43.50 -79.1 35 123
2/20/22 43.68 -79.0 30 111
2/10/22 43.69 -79.4 40 124
2/10/22 43.69 -79.4 34 124
我尝试的方法:
我尝试了内部连接以及索引。有时我有内存错误,有时它给空表或左表,如果我使用左连接。pandas.merge(df1, df2, on=[Date,Lat,Long]) or dataframe.merge
任何东西都没有给出正确的答案。
我面临的问题:
在内部加入笛卡尔积是耗费巨大的计算过程,也是我不正确的方法。
1条答案
按热度按时间eoxn13cs1#
在左合并之后使用
pandas.DataFrame.drop_duplicates
应该会给予您想要的结果:#输出: