比较数据帧 python 个匹配行
Compare data frames python matching rows
我有一个简单的问题。我需要比较不同汽车的不同轨迹。因此,我有不同长度的不同 .csv 文件,其中包含不同汽车随时间行驶的不同路线。
import pandas as pd
df = pd.read.csv("car1_route0.csv")
df1 = pd.read.csv("car1_route1.csv")
df =
lat lon
48.787834 11.383918
48.788124 11.384003
48.787849 11.383751
df1 =
48.787834 11.383918
48.788124 11.384003
48.787849 11.383751
48.787849 12.000000
最后,我想要一个包含所有点的数据框,计算人们经过该点的时间。
out =
lat lon time
48.787834 11.383918 2
48.788124 11.384003 2
48.787849 11.383751 2
48.787849 12.000000 1
concat
你的 dfs 读入后,然后 groupby
在 'lat' 和 'lon' 然后调用 size
到 return count, reset_index
恢复分组列,最后将生成的列 0
重命名为 'time':
In [8]:
merged = pd.concat([df1,df2], ignore_index=True)
merged
Out[8]:
lat lon
0 48.787834 11.383918
1 48.788124 11.384003
2 48.787849 11.383751
3 48.787834 11.383918
4 48.788124 11.384003
5 48.787849 11.383751
6 48.787849 12.000000
In [15]:
merged.groupby(['lat','lon']).size().reset_index().rename(columns={0:'time'})
Out[15]:
lat lon time
0 48.787834 11.383918 2
1 48.787849 11.383751 2
2 48.787849 12.000000 1
3 48.788124 11.384003 2
我有一个简单的问题。我需要比较不同汽车的不同轨迹。因此,我有不同长度的不同 .csv 文件,其中包含不同汽车随时间行驶的不同路线。
import pandas as pd
df = pd.read.csv("car1_route0.csv")
df1 = pd.read.csv("car1_route1.csv")
df =
lat lon
48.787834 11.383918
48.788124 11.384003
48.787849 11.383751
df1 =
48.787834 11.383918
48.788124 11.384003
48.787849 11.383751
48.787849 12.000000
最后,我想要一个包含所有点的数据框,计算人们经过该点的时间。
out =
lat lon time
48.787834 11.383918 2
48.788124 11.384003 2
48.787849 11.383751 2
48.787849 12.000000 1
concat
你的 dfs 读入后,然后 groupby
在 'lat' 和 'lon' 然后调用 size
到 return count, reset_index
恢复分组列,最后将生成的列 0
重命名为 'time':
In [8]:
merged = pd.concat([df1,df2], ignore_index=True)
merged
Out[8]:
lat lon
0 48.787834 11.383918
1 48.788124 11.384003
2 48.787849 11.383751
3 48.787834 11.383918
4 48.788124 11.384003
5 48.787849 11.383751
6 48.787849 12.000000
In [15]:
merged.groupby(['lat','lon']).size().reset_index().rename(columns={0:'time'})
Out[15]:
lat lon time
0 48.787834 11.383918 2
1 48.787849 11.383751 2
2 48.787849 12.000000 1
3 48.788124 11.384003 2