如何使用Python验证两个不同的.csv文件的列标识匹配?

2024-09-30 04:31:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个不同的.csv文件,但它们有相同的id列。在

file_1.csv:
id, column1, column2
4543DFGD_werwe_23, string
4546476FGH34_wee_24, string
....
45sd234_w32rwe_2342342, string

另一个:

^{pr2}$

如何验证这两列是否匹配(具有相同的id)或是否与csv模块或pandas相同?。在


Tags: 模块文件csvidpandasstringfilecolumn1
2条回答

按csv模块:

  1. 打开文件两个文件。在
  2. 通过csv reader()方法读取文件。在
  3. 创建字典,因为行的第一项是键,值是行。在
  4. {{cd2>使用相同的方法从cd2}获取相同的方法。在
  5. 打印结果。在

代码:

import csv

file1 =  '/home/vivek/Desktop/stackoverflow/fil1.csv'
file2 =  '/home/vivek/Desktop/stackoverflow/fil2.csv'

with open(file1) as fp1:
    root = csv.reader(fp1)
    rows1 = {}
    for i in root:
        rows1[i[0]]=i
    if "id" in rows1:
        del rows1["id"]

with open(file2) as fp1:
    root = csv.reader(fp1)
    rows2 = {}
    for i in root:
        rows2[i[0]]=i
    if "id" in rows2:
        del rows2["id"]

result = set(rows1.keys()).intersection(set(rows2.keys()))

print "Same Id :", list(result)

输出:

^{pr2}$

加载后,您可以对id列调用^{}

df['id'].equals(df1['id'])

这将返回FalseTrue,如果它们完全相同,长度和值的顺序相同

^{pr2}$

要加载CSV:

df = pd.read_csv('file_1.csv')
df1 = pd.read_csv('file_2.csv') # I'm assuming your real other csv is not the same name as file_1.csv

然后可以执行与上述相同的比较:

df.id.equals(df1.id)

如果只想比较id列,可以指定只加载该列:

df = pd.read_csv('file_1.csv', usecols=['id'])
df1 = pd.read_csv('file_2.csv', usecols=['id'])

相关问题 更多 >

    热门问题