微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 在pandas中合并两个数据帧

我正在使用以下代码合并两个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)

我有以下CSV文件

文件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 举报,一经查实,本站将立刻删除。

相关推荐