我有一些表格資料(基于一些熊貓資料框),格式如下:
| 指數 | 名稱 | 區域 1 | ... | 區域 n |
|---|---|---|---|---|
| 索引資料 | 名稱資料 | 區域 1 資料 | 區域 1 資料 | 區域 1 資料 |
現在我想遍歷資料行并為每一行分離某個字串變數中的列Name的資料和某種陣列或串列中所有 1≤i≤n的列Region i的資料。
我知道的方法如下:
for index, row in data.iterrows():
name = row.values[0]
regions = row.filter(regex = '^Region').values
body of loop
在 for 回圈的主體中,我再也不需要變數行,只需要名稱和區域。所以對我來說,代碼感覺有點超載。
我現在的問題是:
他們是否有某種方法可以讓一切變得更簡單,也許是一些 for 回圈:
for index, name, regions in data():
body of loop
uj5u.com熱心網友回復:
首先,在使用 pandas 時,最好盡量避免使用 for 回圈。使用 pandas 方法會更快,而且你可以用 for 回圈做很多事情。
對于您的情況,您可以在函式中定義要執行的操作并將其傳遞給apply()pandas 資料幀的方法。例如:
def body_for_loop(row, region_index):
name = row["Name"]
regions = row.filter(regex = '^Region').values
# body of loop
現在,當您想使用它時,您只需呼叫:
df.apply(body_fro_loop, axis=1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/412433.html
標籤:
