簡體   English   中英

將熊貓數據框拆分為多個數據框,直到它們各自的最后一行

[英]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.

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