簡體   English   中英

熊貓:讀取Excel nrows無效,並且dtype不會保留0填充

[英]Pandas: read excel nrows not working, and dtype does not preserve 0 padding

在讀取excel,指定dtype和nrows時,很難定義參數。

讓我們以這個以excel .xlsx格式保存的小表為例。 'col1'數字填充為0。

col1    col2
01  a
02  b
03  c
04  d

第一個問題,我想閱讀整個表格,但保留填充。 我嘗試使用dtype定義為object或str,並且也使用了轉換器(如下)。 dtype將轉換為對象,但是,不會保留填充。 反正有這樣做嗎?

pd.read_excel(path, sheetname=0, dtype={'col1': object}, nrows=5)
pd.read_excel(path, sheetname=0, converters={'col1':lambda x: str(x)}, nrows=5)

第二個問題,我嘗試使用nrows(如下所示)提取數據框的子集。 但是,這根本不起作用,仍然會拉出整個表。

pd.read_excel(path, sheetname=0, nrows=2)

對於這兩種情況,它在pd.read_csv都可以正常工作

我正在使用pandas v0.20.3。

格式化不起作用的原因是因為Excel的格式化僅更改數據的顯示方式,而不更改數據的存儲方式。

更改數據存儲方式; 您需要更改文件的本機格式; 或以所需方式格式化數據。

在您的情況下,您要將其轉換為字符串,那么您應該將其轉換為零填充字符串 為此,有一個稱為str.zfill()的特殊函數。

問題的第二部分要簡單得多-在熊貓版本0.23.0中添加了read_excel nrows參數

如果您在excel中設置格式,這並不意味着excel文件中存儲的值實際上是'01'。 將其另存為csv,然后在記事本中打開它。 我的猜測是您不應該看到“ 01”,而是看到“ 1”

nrows適用於熊貓v 23,而您使用v 20

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM