2017-03-02 59 views
0

例如,假設我有一些代碼(在Python 3.5)看起來是這樣的:如何以字符串的形式讀取表的第一列?

In [234]: from io import StringIO 
In [235]: f = '#a b c\n08 1 2\n9 3 4\n' 
In [236]: df = pd.read_table(StringIO(f), sep=' ') 
In [237]: df 
Out[237]: 
    #a b c 
0 8 1 2 
1 9 3 4 

它讀取第1列int8前擺脫的0。我知道我們可以通過dtype={'#a': str}來讀取它作爲str。然而,據說我不知道​​列名前面,我怎麼能讀第一列作爲str類型?

+0

我得到'類型錯誤:initial_value必須是Unicode或無,不從第三行試圖運行時str'你Python 2.7上的代碼。 – Khris

+0

未在py2上進行測試。我在py3上運行。更新的問題。 – RNA

回答

2

您可以使用dtype藉助字典,其中鍵分別對應索引位置:

from io import StringIO 
f = '#a b c\n08 1 2\n9 3 4\n' 
df = pd.read_table(StringIO(f), sep=' ', dtype={0: str}) 

print(df) 

    #a b c 
0 08 1 2 
1 9 3 4 

print(df.dtypes) 

#a object 
b  int64 
c  int64 
dtype: object 
+0

@RNA更新爲您的要求。 – pansen

+0

很不錯,我覺得0 doestn工作;)+1 – jezrael

+0

@jezrael當重命名輸入一列數據爲0,它仍然有效,因爲而整數對應索引位置的列名設置爲D型詞典中的字符串。 – pansen

相關問題