gpt4 book ai didi

python - 如何使用 python 比较两个不同的 csv 文件?

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

我想编写比较两个 csv 文件的代码!

import pandas as pd
import numpy as np

df = pd.read_csv("E:\Dupfile.csv")
df1 = pd.read_csv("E:\file.csv")

df['Correct'] = None

def Result(x):
if ....:
return int(1)
else:
return int(0)


df.loc[:,"Correct"]=df.apply(Result,axis=1)

print(df["Correct"])

df.to_csv("E:\file.csv")
print(df.head(20))

例如,file.csv 格式如下:

     round    date  first  second  third  fourth  fifth  sixth  
0 1 2021.04 1 14 15 24 40 41
1 2 2021.04 2 9 10 16 35 37
2 3 2021.04 4 15 24 35 36 40
3 4 2021.03 10 11 20 21 25 41
4 5 2021.03 4 9 23 26 29 33
5 6 2021.03 1 9 26 28 30 41

Dupfile.csv 如下所示:

    round    date  first  second  third  fourth  fifth  sixth  
0 1 2021.04 1 14 15 24 40 41
0 1 2021.04 1 2 3 4 5 6
1 2 2021.04 2 9 10 16 35 37
1 2 2021.04 1 2 3 4 5 6
2 3 2021.04 4 15 24 35 36 40
2 3 2021.04 1 2 3 4 5 6
3 4 2021.03 10 11 20 21 25 41
3 4 2021.03 1 2 3 4 5 6
4 5 2021.03 4 9 23 26 29 33
4 5 2021.03 1 2 3 4 5 6

它又多了一轮,但值(value)不同。

用 Dupfile 的 round 检查文件的 round 值,如果第一个到第六个值相等,则在 Dupfile 中创建另一个“正确”列并输入 1。如果不正确,则将 0 放入“正确”列。

我试图比较两个不同的 csv 文件,但我不知道该怎么做。有人可以帮助我吗?

我的期望答案:

    round    date  first  second  third  fourth  fifth  sixth Correct
0 1 2021.04 1 14 15 24 40 41 1
0 1 2021.04 1 2 3 4 5 6 0
1 2 2021.04 2 9 10 16 35 37 1
1 2 2021.04 1 2 3 4 5 6 0
2 3 2021.04 4 15 24 35 36 40 1
2 3 2021.04 1 2 3 4 5 6 0
3 4 2021.03 10 11 20 21 25 41 1
3 4 2021.03 1 2 3 4 5 6 0
4 5 2021.03 4 9 23 26 29 33 1
4 5 2021.03 1 2 3 4 5 6 0

最佳答案

如果使用pandas模块,最好获取模块中提供的方法。我建议您尝试使用 merge 来比较 2 个不同的 DataFrame。我重写你的代码如下。

import pandas as pd

df = pd.read_csv("E:\Dupfile.csv")
df1 = pd.read_csv("E:\file.csv")

df1['Correct'] = 1

df = df.merge(
df1,
how='left',
on=['round',
'date',
'first',
'second',
'third',
'fourth',
'fifth',
'sixth']).fillna(0)

print(df)

print(df['Correct'])

df.to_csv("E:\file.csv")
print(df.head(20))

它是如何工作的?

merge 方法尝试将 dfdf1 中的列与 on 中存在的同名列相匹配> 阵列。当您为 how 参数选择 left 时,合并 (df) 左侧的任何值都不会被删除(Left Join)。换句话说,我们在 file.csv 中创建的 correct 列附加到 Dupfil.csv 数据,并且不匹配被指定为 nan 值。 fillna(0) 方法帮助我们将 nan 值替换为 0。

pandas.DataFrame.merge API reference

关于python - 如何使用 python 比较两个不同的 csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69593792/

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