[英]Split pandas dataframe to multiple dataframes until their respective last filled row
我有一個要從 excel 范圍 C54:Q66 讀取的熊貓數據框。 現在這里有多個數據集。請見圖。
我只想讀取一次主數據幀(Excel Range C54:Q66),然后將數據幀拆分為 4 個單獨的數據幀,例如:
dataframe_1 = Excel Range (C54:D64)
dataframe_2 = Excel Range (I54:J64)
dataframe_3 = Excel Range (L54:M65)
dataframe_4 = Excel Range (P54:Q66)
您能否推薦如何使用 pandas 在 Python 中執行此操作。 我知道一種方法是從 excel 文件中單獨讀取這些數據幀,但是讀取文件 4 次需要很長時間,而且我也知道它效率低下。 我知道你們的專家將有一個有效的方法來實現這一點。 謝謝!
來自pandas 官方文檔, pandas.ExcelFile.parse
允許您在一張表中解析多個表。 我模擬了一個電子表格,如下圖所示。
以下代碼顯示了如何解析同一張工作表中的表格。
usecols: int, str, list-like, or callable default None
如果沒有,則解析所有列。
如果 str,則表示 Excel 列字母和列范圍的逗號分隔列表(例如“A:E”或“A,C,E:F”)。 范圍包括雙方。
如果是 int 列表,則表示要解析的列號列表。
如果是字符串列表,則表示要解析的列名列表。
如果可調用,則根據它評估每個列名並在可調用返回 True 時解析該列。
根據上述行為返回列的子集。
xl = pd.ExcelFile("data.xlsx")
df1 = xl.parse(sheet_name=0, header=1, usecols=[1, 2, 3])
df2 = xl.parse(sheet_name=0, header=1, usecols=[6, 7, 8])
df1
輸出:
指數 | col1 | col2 | col3 |
---|---|---|---|
0 | X | X | X |
1 | 是的 | 是的 | 是的 |
df2
輸出:
指數 | col4 | col5 | col6 |
---|---|---|---|
0 | 一個 | 一個 | 一個 |
1 | b | b | b |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.