我正在呼叫一個回傳 JSON 檔案的 API。當我將 JSON 檔案決議為 Pandas 資料幀時,它回傳下表:
| 1級 | 2 級 | 3級 |
|---|---|---|
| 全部的 | 類別1 | 類別 1.2 |
| 全部的 | 沒有任何 | 沒有任何 |
| 全部的 | 類別 2 | 沒有任何 |
| 全部的 | 類別 2 | 類別 2.1 |
| 全部的 | 類別 3 | 沒有任何 |
| 全部的 | 類別 3 | 類別 3.1 |
如您所見,共有三個級別的類別。我想用之前列中的值替換列中的“無”值。資料框應如下所示:
| 1級 | 2 級 | 3級 |
|---|---|---|
| 全部的 | 類別1 | 類別 1.2 |
| 全部的 | 全部的 | 全部的 |
| 全部的 | 類別 2 | 類別 2 |
| 全部的 | 類別 2 | 類別 2.1 |
| 全部的 | 類別 3 | 類別 3 |
| 全部的 | 類別 3 | 類別 3.1 |
我已經嘗試了一些回圈和以下代碼:
for i in range(len(df.columns)):
df.iloc[:,i] = np.where(df.iloc[:,i] == "None",df.iloc[:,i 1],df.iloc[:,i])
但這不起作用。我怎樣才能做到這一點?
謝謝!
uj5u.com熱心網友回復:
確保您None的實際上是np.nan,然后您的任務將變得簡單,因為沿著列向前填充ffill(axis=1)將滿足您的需求:
df.replace('None',np.nan,inplace=True)
df_f = df.ffill(axis=1)
print(df_f)
Level 1 Level 2 Level 3
0 Total Category1 Category 1.2
1 Total Total Total
2 Total Category 2 Category 2
3 Total Category 2 Category 2.1
4 Total Category 3 Category 3
5 Total Category 3 Category 3.1
uj5u.com熱心網友回復:
DataFrame.ffill適用于 PythonNone物件。傳遞axis=1以跨列填充:
filled = df.ffill(axis=1)
print(filled)
Level 1 Level 2 Level 3
0 Total Category1 Category 1.2
1 Total Total Total
2 Total Category 2 Category 2
3 Total Category 2 Category 2.1
4 Total Category 3 Category 3
5 Total Category 3 Category 3.1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386205.html
