You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas合并CSV文件:01-09前缀行未合并的原因及解决

问题原因
  • 核心问题出在CSV读取阶段:Pandas默认会把纯数字列识别成整数,像01、02这种带前导零的数值会被自动转成1、2。
  • 后续转字符串时,一个文件里的列值是"1",另一个文件如果保留了原始的"01"字符串,两者没法匹配,导致01-09的行合并不了。
解决方法

方法1:读取时直接指定列类型为字符串

在读取CSV的时候就告诉Pandas目标列是字符串,避免自动转换前导零:

import pandas as pd

# 读取时指定1stcolumn为字符串类型,保留原始前导零
data1 = pd.read_csv('1stfile.csv', dtype={'1stcolumn': str})
data2 = pd.read_csv('2ndfile.csv', dtype={'1stcolumn': str})

# 直接执行内合并
output1 = pd.merge(data1, data2, on='1stcolumn', how='inner')
print(output1)

output1.to_csv('finalfile.csv', index=False, header=False)

方法2:统一补前导零格式

如果已经把列读成了整数,可以通过补零把所有字符串统一成两位格式:

import pandas as pd

data1 = pd.read_csv('1stfile.csv')
data2 = pd.read_csv('2ndfile.csv')

# 转字符串后补前导零到两位(如果是三位数就改成zfill(3))
data1['1stcolumn'] = data1['1stcolumn'].astype(str).str.zfill(2)
data2['1stcolumn'] = data2['1stcolumn'].astype(str).str.zfill(2)

output1 = pd.merge(data1, data2, on='1stcolumn', how='inner')
print(output1)

output1.to_csv('finalfile.csv', index=False, header=False)

内容的提问来源于stack exchange,提问作者Chetan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 02:10:51