gpt4 book ai didi

python - 使用 pandas/python 连接两个 csv 文件,不重复

转载 作者:行者123 更新时间:2023-12-02 04:08:26 25 4
gpt4 key购买 nike

我想连接 2 个 csv 文件。每个 CSV 文件都具有以下结构:

文件1

id、名称、类别 ID、纬度、经度
4c29e1c197,区域51,4bf58dd8d,45.44826958,9.144208431
4ede330477,蓬托·斯奈,4bf58dd8d,45.44833354,9.144086353
51efd91d49,塞西莉亚冰淇淋,4bf58dd8d,45.44848931,9.144008735

文件2

id、名称、类别 ID、纬度、经度
4c29e1c197,区域51,4bf58dd8d,45.44826958,9.144208432
4ede330477,蓬托·斯奈,4bf58dd8d,45.44833354,9.144086353
51efd91d49,塞西莉亚冰淇淋,4bf58dd8d,45.44848931,9.144008735
5748729449,米兰大教堂,52e81612bc,45.463898,9.192034

我得到了一个最终的 csv,看起来像

最终文件

id、名称、类别 ID、纬度、经度
4c29e1c197,区域51,4bf58dd8d,45.44826958,9.144208431
4c29e1c197,区域51,4bf58dd8d,45.44826958,9.144208432
4ede330477,蓬托·斯奈,4bf58dd8d,45.44833354,9.144086353
51efd91d49,塞西莉亚冰淇淋,4bf58dd8d,45.44848931,9.144008735
5748729449,米兰大教堂,52e81612bc,45.463898,9.192034

所以我这样做了:

import pandas as pd

df1=pd.read_csv("file1.csv")
df2=pd.read_csv("file2.csv")

full_df = pd.concat(df1,df2)

full_df = full_df.groupby(['id','category_id','lat','lng']).count()

full_df2 = full_df[['id','category_id']].groupby('id').agg('count')

full_df2.to_csv("final.csv",index=False)

我尝试按 id、categoy_id、lat 和 lng 进行分组,名称可能会更改在第一个 groupby 之后,我想再次进行 groupby,但现在按 id 和 Category_id 进行分组,因为如我的示例所示,第一行发生了很长的变化,但这可能是因为 file2 是 file1 的更新

我不明白 groupby,因为当我尝试打印时,我只得到了计数值。

最佳答案

解决此问题的一种方法是在连接两个 DataFrame 后使用 df.drop_duplicates() 。此外,drop_duplicates 有一个参数“keep”,它允许您指定要保留最后一次出现的重复项。

full_df = pd.concat([df1,df2])
unique_df = full_df.drop_duplicates(keep='last')

检查documentation如果您需要进一步帮助,请查看 drop_duplicates。

关于python - 使用 pandas/python 连接两个 csv 文件,不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38172215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com