繁体   English   中英

我需要帮助将 1 个 csv 文件和 1 个 pandas 数据框连接在一起而没有重复

[英]I need help concatenating 1 csv file and 1 pandas dataframe together without duplicates

我的代码目前如下所示:

df1 = pd.DataFrame(statsTableList)
df2 = pd.read_csv('StatTracker.csv')
result = pd.concat([df1,df2]).drop_duplicates().reset_index(drop=True)

我得到一个错误,我不知道为什么。

我的程序的目标是从 API 中提取数据,然后将其全部写入文件进行分析。 df1 可以说是作为第一个版本写入 csv 文件的前 100 个游戏。 df2 是我第二次读回前 100 场比赛并将其与 df1(新数据,接下来的 100 场比赛)进行比较,以检查重复项并删除它们。

不工作的部分是 drop duplicates 部分。 它给了我一个不可哈希列表的错误,我认为这是因为它的两个数据框是字典列表。 目标是提取 100 场比赛的数据,然后再拉下 50 场,但如果我再次拉出 100 号,则删除那个,只需添加 101-150,然后将其全部添加到我的 csv 文件中。 然后,如果我再次运行它,拉 150-200,但如果它是重复的,则丢弃 150,等等。

根据您的解释,您可以使用这一行来查找 df1 中的唯一值:

df_diff = df1[~df1.apply(tuple,1)\
            .isin(df2.apply(tuple,1))]

此代码检查行是否存在于另一个数据框中。 为了进行比较,它将每一行转换为元组(沿 1(行)轴应用元组转换)。

这个解决方案确实很慢,因为它会将 df1 中的每一行与 df2 中的所有行进行比较。 所以它的时间复杂度为 n^2。

如果您想要更优化的版本,请尝试使用 pandas 内置的 compare 方法

df1.compare(df2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM