2017-04-19 47 views
-1

我正在閱讀excel電子表格中的一堆列,其中一些字段是「ID」代碼,它們看起來像數字(因爲它們具有前導零)。我想保留這些ID字段爲文本/字符串,有沒有辦法以文本形式讀取所有內容,並將數字字段轉換爲數字或以文本/字符串的形式顯式讀取某些字段?熊貓read_excel顯式讀取文本中的一列?

+0

你知道多少列會出現? – piRSquared

回答

2

考慮爲csv文件

from io import StringIO 
import pandas as pd 

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

txt代理創建一個字典,其中鍵列的順序位置和值是被稱爲對這些列的可調用。問題是我需要知道列的數量。在這裏,我知道有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