簡體   English   中英

在 Pandas 中,read_excel() 中使用的 read_csv() 中的“nrows”相當於什么?

[英]In Pandas, whats the equivalent of 'nrows' from read_csv() to be used in read_excel()?

只想將特定范圍的數據從 excel 電子表格(.xlsm 格式,因為它具有宏)導入到 Pandas 數據框中。 是這樣做的:

data    = pd.read_excel(filepath, header=0,  skiprows=4, nrows= 20, parse_cols = "A:D")

但似乎 nrows 僅適用於 read_csv() ? read_excel() 的等價物是什么?

如果您知道 Excel 工作表中的行數,則可以使用skip_footer參數讀取文件的前n - skip_footer行,其中n是總行數。

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html

用法:

data = pd.read_excel(filepath, header=0, parse_cols = "A:D", skip_footer=80)

假設您的 excel 表有 100 行,此行將解析前 20 行。

文檔中所述,從 pandas 版本 0.23 開始,這現在是一個內置選項,其功能幾乎與 OP 所述完全相同。

編碼

data = pd.read_excel(filepath, header=0, skiprows=4, nrows= 20, use_cols = "A:D")

現在將讀取excel文件,從第一張工作表中取數據(默認),跳過4行數據,然后以第一行(即工作表的第五行)為標題,將接下來的20行數據讀入數據框(第 6-25 行),並且僅使用 A:D 列。 請注意, use_cols 現在是最后一個選項,因為 parse_cols 已被棄用。

我想讓(擴展) @Erol 的回答更靈活一些。

假設我們不知道excel表中的總行數:

xl = pd.ExcelFile(filepath)

# parsing first (index: 0) sheet
total_rows = xl.book.sheet_by_index(0).nrows

skiprows = 4
nrows = 20

# calc number of footer rows
# (-1) - for the header row
skipfooter = total_rows - nrows - skiprows - 1

df = xl.parse(0, skiprows=skiprows, skipfooter=skipfooter, parse_cols="A:D") \
       .dropna(axis=1, how='all')

.dropna(axis=1, how='all')將刪除所有包含NaN的列

暫無
暫無

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

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