python - Pandas 从 csv 读取数据帧,索引为字符串,而不是 int

标签 python numpy pandas

我的 csv 文件如下:

INDEX, VAL
04016170,22
04206261,11
0420677,11

df = pd.read_csv('data.csv', index_col='INDEX')

如何强制 pandas 将索引读取为字符串而不是整数(以保留第一个 0)?

最佳答案

您可以通过 dtype作为参数,这会将列映射到传递的数据类型:

In [130]:
import io
import pandas as pd
t="""INDEX,VAL
04016170,22
04206261,11
0420677,11"""
df = pd.read_csv(io.StringIO(t), index_col='VAL', dtype={'INDEX':str})
df

Out[130]:
        INDEX
VAL          
22   04016170
11   04206261
11    0420677

In [131]:    
df.info()

<class 'pandas.core.frame.DataFrame'>
Int64Index: 3 entries, 22 to 11
Data columns (total 1 columns):
INDEX    3 non-null object
dtypes: object(1)
memory usage: 48.0+ bytes

编辑

好的,你可以这样做,当你在 read_csv 中显式设置 index_col 时,这里有一个错误,所以你必须先加载 csv 然后然后加载后调用set_index:

In [134]:
df = pd.read_csv(io.StringIO(t), dtype={'INDEX':str})
df = df.set_index('INDEX')
df

Out[134]:
          VAL
INDEX        
04016170   22
04206261   11
0420677    11

关于python - Pandas 从 csv 读取数据帧,索引为字符串,而不是 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31813500/

相关文章:

python - 使用正则表达式进行模式匹配 python

python - 将 pandas 数据框保存为图像或 pdf 文档中的表格,并具有良好的多索引显示

python - 使用 oauthlib python 获取 json 时出错

python-2.7 - 在 Python : LinAlgError 中建模时检测 mulicollinear 或具有线性组合的列

python - 在 Python 中将带有空格的字符串转换为具有所需尺寸的数据框

python - 如果 else 最后失败并抛出关键错误 - python

python - Numpy 多阶段容器构建——Alpine

python - 无法在不导致错误的情况下列出我在 list_editable 中的所有字段

python 运行时错误 : "mi" not found for replace

python - Scipy 最小化函数似乎在自己创建多个线程?