pandas read_excel显式读取文本中的列?

时间:2017-04-19 00:10:01

标签: python excel pandas

我正在阅读excel电子表格中的一些列,其中一些字段是'ID'代码,这些代码看起来像数字(因为它们有前导零)。我想将这些ID字段保存为文本/字符串,是否有办法以文本形式读取所有内容并将数字字段转换为数字或以文本/字符串显式读取某些字段?

1 个答案:

答案 0 :(得分:2)

考虑csv文件的txt代理

from io import StringIO
import pandas as pd

txt = """col1,col2,col3
1,01,a
2,02,b
3,03,c"""

创建一个字典,其中键是列的序数位置,值是在这些列上调用的可调用对象。问题是我需要知道列数。在这里,我知道有3

converters = dict(enumerate([str] * 3))
print(converters)

{0: <class 'str'>, 1: <class 'str'>, 2: <class 'str'>}

然后我们将其传递给pd.read_csv

df = pd.read_csv(StringIO(txt), converters=converters)

print(df)

  col1 col2 col3
0    1   01    a
1    2   02    b
2    3   03    c

print(df.dtypes)

col1    object
col2    object
col3    object
dtype: object