【问题标题】:Compare data frames python matching rows比较数据框python匹配行
【发布时间】:2015-09-22 15:52:23
【问题描述】:

我有一个简单的问题。我需要比较不同汽车的不同轨迹。所以,我有不同长度的不同 .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

【问题讨论】:

    标签: python pandas comparison dataframe


    【解决方案1】:

    concat 你的 dfs 在读入它们之后,然后 groupby 在 'lat' 和 'lon' 上,然后调用 size 来返回计数,reset_index 来恢复你的分组列,最后重命名生成的列0 到“时间”:

    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
    

    【讨论】:

    • 太好了,非常感谢。这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 2015-06-10
    • 2020-06-18
    • 2019-10-30
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多