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

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...