2014-07-01 64 views
4

我正在使用python pandas和MS excel來編輯xlsx文件。我在這些程序之間來回迭代。該文件包含了一些列的文字看起來像數字,例如,熊貓閱讀excel:不解析數字

enter image description here

如果我讀了這一點,我得到

pd.read_excel ('test.xlsx') 
    A 
0 1 
1 100 

pd.read_excel ('test.xlsx').dtypes 
A int64 
dtype: object 

我的問題是:如何是否有可能將文本讀取爲文本?在閱讀之後不能將其解析,因爲部分信息(即前導零)在轉換爲數字後會丟失。

謝謝你的幫助。

+0

與CSV工作很容易。任何只有Excel文件的原因? – Zero

+0

因爲我在excel和python之間共享csv有很多問題,特別是如果某些單元格包含非ascii字符。使用xls或xlsx文件時,此字符編碼問題不存在。 – Felix

回答

3

根據this issue,這是大熊貓的一個已知問題。

+0

的確如此,謝謝!我希望他們能儘快修復... – Felix

+0

謝謝你接受我的回答(這是我的第一個:)。你提到有CSV編碼問題。你應該問一下,因爲我認爲這些都是可以解決的。 – RJT

10

您可以通過使用「轉換器」參數工作known issue左右(假設你知道列名):

>>> pd.read_excel('test.xlsx', converters={'A': str}) 
    A 
0 001 
1 100 
>>> pd.read_excel('test.xlsx', converters={'A': str}).dtypes 
A object 
dtype: object