python - 使用 Pandas 读取 CSV 时如何在列中保持前导零?

标签 python pandas csv types

我正在使用 read_csv 将研究数据导入 Pandas 数据框。

我的主题代码是 6 个数字编码,其中包括出生日期。对于我的一些科目,这会导致代码带有前导零(例如“010816”)。

当我导入 Pandas 时,前导零被去除,列格式为 int64

有没有办法将该列原封不动地导入为字符串?

我尝试为该列使用自定义转换器,但它不起作用 - 似乎自定义转换发生在 Pandas 转换为 int 之前。

最佳答案

this answer 中所示由 Lev Landau , 可以有一个简单的解决方案来为 read_csv 中的某个列使用 converters 选项功能。

converters={'column_name': str}

假设我有 csv 文件 projects.csv,如下所示:

project_name,project_id
Some Project,000245
Another Project,000478

例如下面的代码正在修剪前导零:

from pandas import read_csv

dataframe = read_csv('projects.csv')
print dataframe

结果:

      project_name  project_id
0     Some Project         245
1  Another Project         478

解决方案代码示例:

from pandas import read_csv

dataframe = read_csv('projects.csv', converters={'project_id': str})
print dataframe

要求的结果:

      project_name project_id
0     Some Project     000245
1  Another Project     000478

所有列设为str:

pd.read_csv('sample.csv', dtype=str)

某些列作为str:

# column names which need to be string
lst_str_cols = ['prefix', 'serial']
dict_dtypes = {x: 'str' for x in lst_str_cols}
pd.read_csv('sample.csv', dtype=dict_dtypes)

关于python - 使用 Pandas 读取 CSV 时如何在列中保持前导零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13250046/

相关文章:

python - python pandas groupby 中的 'AAPL' 和 ['AAPL' ] 有什么区别

ruby - 纯 ruby : filtered csv dates by #select but now want to obtain another column based on those date ranges

python - 如何在不使用任何模块或导入 CSV 的情况下从 CSV 文件创建字典?

python - eval 中的命名不明确会导致 TypeError : unsupported expression type: <class 'function' >

python - 任务队列执行

Python帮助: Paths in gmplot

python - DataFrame 应用并返回可变多行?

python - 在 for-in 循环之间添加暂停

mysql - 以带有标题的 CSV 格式导出 SQL 表

php - 将数据透视表模板从 csv(Excel) 移动到 MySQL