我有3个csv文件,我需要合并
所有3个文件的前三列相同,如姓名、年龄、性别,但其他列都不同。
我是新的python。我需要帮助。我可以理解任何代码写。谢谢
我尝试了一些代码,但不起作用
file 1
firstname,secondname,age,address,postcode,height
gdsd,gas,uugd,gusa,uuh,hhuuw
kms,kkoil,jjka,kja,kaja,loj
iiow,uiuw,iue,oijw,uow,oiujw
ujis,oiiw,ywuq,sax,cxv,ywf
file 2
firstname,secondname,age,home-town,spousename,marital_staus
gdsd,gas,uugd,vbs,owu,nsvc
kms,kkoil,jjka,kja,kaja,loj
iiow,uiuw,iue,xxfaf,owuq,pler
ujis,oiiw,ywuq,gfhd,lzac,oqq
file 3
firstname,secondname,age,drive,educated,
gdsd,gas,uugd,no,yes
kms,kkoil,jjka,no,no
iiow,uiuw,iue,yes,no
ujis,oiiw,ywuq,yes,yes
预期结果
firstname,secondname,age,hometown,spousename,marital_status,adress,post_code,height,drive,educated
注意,firstname,secondname,age
在3个表中是相同的
我需要有效的密码
2条答案
按热度按时间zzlelutf1#
你可以使用Python中的csv模块来读取和合并CSV文件,而不需要使用panda。下面是一个例子,说明如何合并前三列相同(name、age、sex)而其他列不同的三个CSV文件:
另外,只有当所有的CSV文件具有相同的结构,相同的列和相同的行数时,它才能工作。另外,这个代码不会检查数据是否唯一。
o7jaxewo2#
下面是用Python连接具有不同头文件的CSV文件的通用解决方案。
您首先需要做的是读取每个CSV文件的头,以确定“唯一”字段名。
然后,您只需读取每个输入记录,并在将其转换为与新的头(由唯一字段组成)匹配后将其输出。
**备注:**我打开了两次文件,所以它不适用于流输入(例如
sys.stdin
)