gpt4 book ai didi

Python Dataframe 在连接时防止重复

转载 作者:行者123 更新时间:2023-12-04 07:41:02 32 4
gpt4 key购买 nike

我有两个数据框。我把它们连接起来做成一个。问题是,在对代码进行故障排除时,我会多次使用相同的 concat 代码。这会产生重复行的数据帧,就像我执行 concat 的次数一样。我想阻止它。
我的代码:

rdf = pd.DataFrame({'A':[10,20]},index=pd.date_range(start='2020-05-04 08:00:00', freq='1h', periods=2))
df2 = pd.DataFrame({'A':[30,40]},index=pd.date_range(start='2020-05-04 10:00:00', freq='1h', periods=2))

# Run it first time
rdf= pd.concat([rdf,df2])
# First time result
rdf
A
2020-05-04 08:00:00 10
2020-05-04 09:00:00 20
2020-05-04 10:00:00 30
2020-05-04 11:00:00 40

# Run it second time
rdf= pd.concat([rdf,df2])
# second time result produces duplicates
rdf
A
2020-05-04 08:00:00 10
2020-05-04 09:00:00 20
2020-05-04 10:00:00 30
2020-05-04 11:00:00 40
2020-05-04 10:00:00 30
2020-05-04 11:00:00 40
我的解决方案:我的方法是正确的新行代码并通过保留第一个来删除重复项。
rdf= pd.concat([rdf,df2])
rdf.drop_duplicates(keep='first',inplace=True)
rdf
A
2020-05-04 08:00:00 10
2020-05-04 09:00:00 20
2020-05-04 10:00:00 30
2020-05-04 11:00:00 40
有没有更好的方法?我的意思是,我们可以在连接时防止这种情况吗?因此,无需编写额外的行代码来删除重复项。

最佳答案

那我们试试combine_first

rdf = rdf.combine_first(df2)
rdf = rdf.combine_first(df2)
rdf
Out[115]:
A
2020-05-04 08:00:00 10.0
2020-05-04 09:00:00 20.0
2020-05-04 10:00:00 30.0
2020-05-04 11:00:00 40.0

关于Python Dataframe 在连接时防止重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67462991/

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