我正在使用以下代码合并两个csv(数据框):
import pandas as pd
a = pd.read_csv(file1,dtype={'student_id': str})
df = pd.read_csv(file2)
c=pd.merge(a,df,on='test_id',how='left')
c.to_csv('test1.csv', index=False)
文件1:
test_id, student_id
1, 01990
2, 02300
3, 05555
文件2:
test_id, result
1, pass
3, fail
合并后
test_id, student_id , result
1, 1990, pass
2, 2300,
3, 5555, fail
如果您注意到student_id在开头附加了0并且它应该被视为文本但是在合并并使用to_csv函数之后它将其转换为数字并删除前导0.
即使在to_csv之后,如何将列保持为“文本”?
我认为它的to_csv函数再次保存为数字
在读取csv时添加了dtype = {‘student_id’:str} ..但是将其保存为to_csv ..它再次将其转换为数字
解决方法:
a = pd.read_csv(file1, dtype={'test_id': object})
df = pd.read_csv(file2, dtype={'test_id': object})
================================================== ============
In[28]: pd.merge(a, b, on='test_id', how='left')
Out[28]:
test_id student_id result
0 01 1990 pass
1 02 2300 NaN
2 003 5555 fail
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。