gpt4 book ai didi

python - 查找两个 csv 文件中列名之间的差异?

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:05 26 4
gpt4 key购买 nike

我有两个 csv 文件,它们的第一行是列的名称。我想diff他们的列名集,即找出

  • 两个文件是否有相同的列名集(列的顺序无关紧要),以及

  • 如果他们不这样做,一个文件中有什么列名而另一个文件中没有..

是否可以使用 awk 或 Linux 中的其他文本处理实用程序来做到这一点?还是使用 Python 更好?

例如假设一个文件看起来像

col2,col1,col3
1,2,3
4,5,6

另一个文件看起来像

col3,col2,col4
2,3,4
5,6,7

那么在第一个文件中但在第二个文件中不存在的列名是col1,在第二个文件中但不在第一个文件中的列名是col4

最佳答案

在 Python 中,首先使用 csv.reader 保存每个文件的标题行:

import csv
with open('one.csv', newline='') as f1, open('two.csv', newline='') as f2:
one = set(next(csv.reader(f1)))
two = set(next(csv.reader(f2)))

然后就可以使用set操作了。

是否相同:

one == two

two 有但 one 没有的列:

two - one

one 有但 two 没有的列:

one - two

为了好玩,两个文件都有的列:

one & two

以及任一文件中的所有可用列:

one | two

关于python - 查找两个 csv 文件中列名之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34763396/

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