python - 根据列值连接 2 个文本文件数据
问题描述
如何使用python实现2个文本文件的连接并输出第三个文件,但只添加一个文件中存在的值,该文件在第二个文件中具有相应的匹配值?
输入文件1.txt:
GameScore|KeyNumber|顺序
85|2568909|2|
84|2672828|1|
80|2689999|5|
65|2123232|3|
输入文件2.txt:
键名|记录号
安迪|2568909|
约翰|2672828|
安迪|2672828|
梅根|1000021|
所需的输出 File3.txt:
KeyName|KeyNumber|GameScore|顺序
安迪|2672828|84|1|
安迪|2568909|85|2|
约翰|2672828|84|1|
梅根|1000021||
在文件 2 中查找键名和记录编号,并将其与文件 1 中的 KeyNumber 匹配并复制相应的游戏分数和顺序值。
这些文件有 1 到 500000 条记录,因此需要能够运行大量记录。
编辑:我无权访问任何像熊猫这样的库,也不允许安装任何库。
基本上需要运行一个 cmd 来触发一个程序,该程序读取 2 个文件,比较并生成第三个文件。
解决方案
您可以使用 pandas 来执行此操作:
import pandas as pd
df1 = pd.read_csv('Input File1.txt', sep='|')
df2 = pd.read_csv('Input File2.txt', sep='|', header=0, names=['KeyName', 'KeyNumber'])
df3 = df1.merge(df2, on='KeyNumber', how='right')
请参阅文档进行微调。
推荐阅读
- javascript - 登录后需要相互等待的多个 axios 调用,然后将用户重定向到 Vue.js 上的仪表板 [时间问题]
- javascript - 在 onsubmit 函数完成之前如何防止表单提交?
- sql - 查询以查找具有指定月份的帐户
- reactjs - Img 的来源应该是动态的
- php - 循环进入 CSV 文件并从头文件 PHP 中获取特定值
- python - 如何将 2D 数组“切片”成 3D 数组
- python - 在 Pandas 数据框中使用 groupby 和 shift 操作计算条件概率
- angular - Angular:如何在不更改模板路由的情况下更新 queryParams
- html - Angular 6中不相关的模板解析错误
- qlikview - 如何在最大/最后日期之前获得日期并在整个表上重复该过程?