python-3.x - 使用 Pandas 比较 2 个 csv 文件
问题描述
如何使用 Pandas 比较 2 个 csv 文件?
文件1:
1
2
3
4
5
5
6
文件2:
4
5
6
1
另一个文件中的预期结果:
2
3
解决方案
您可以使用此方法计算不同 csv 文件之间的差异。请记住将文件名更改为您的文件名。尝试这个:
with open('old.csv', 'r') as t1, open('new.csv', 'r') as t2:
fileone = t1.readlines()
filetwo = t2.readlines()
with open('update.csv', 'w') as outFile:
for line in filetwo:
if line not in fileone:
outFile.write(line)
您还可以使用更复杂的方法来使用集合:
#!/usr/bin/env python3
import sys
import argparse
import csv
def get_dataset(f):
return set(map(tuple, csv.reader(f)))
def main(f1, f2, outfile, sorting_column):
set1 = get_dataset(f1)
set2 = get_dataset(f2)
different = set1 ^ set2
output = csv.writer(outfile)
for row in sorted(different, key=lambda x: x[sorting_column], reverse=True):
output.writerow(row)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('infile', nargs=2, type=argparse.FileType('r'))
parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'), default=sys.stdout)
parser.add_argument('-sc', '--sorting-column', nargs='?', type=int, default=0)
args = parser.parse_args()
main(*args.infile, args.outfile, args.sorting_column)
推荐阅读
- r - 如何在ggplot中统一具有不同类型比例的图例?
- linux - 在 Linux 上通过 Azure DevOps 代理使用全局系统变量
- ionic-framework - 离子 - 开玩笑 - 旁观者:找不到模块'@angular/animations'
- python - 将 Delft-FEWS 系列 xml 文档加载到 pandas DataFrame
- python - Pydantic 为带有嵌套字典的列表创建模型
- windows - 发布中的 Flutter Desktop (Windows) PDF 视图问题
- swift - 有人发现 UIDatePicker 在 iOS 14 下没有显示吗?
- testing - 安装时在 loadrunner 中出现“无法安装 hp loadrunner\dvd\lrunner\en\inst.bat”错误
- python - docker python3部署失败
- java - 考虑在你的配置中定义一个 'Dao interface' 类型的 bean