我正在處理一個支出資料,我想查看當前和上一年支出的上個月。如果這些年沒有支出,那么,我假設最后一個月的支出是 2020 年 12 月。
我的資料看起來像這樣

如資料所示,月份已經以列的形式存在。我想創建一個新列last_txn_month,顯示上個月的支出時間。所以輸出應該是這樣的:

uj5u.com熱心網友回復:
假設您的 DataFrame 如下所示:
df = pd.DataFrame([[1, np.nan, np.nan, 3, np.nan], [10, 11, 12, 13, 14],
[101, 102, np.nan, np.nan, np.nan],
[110, np.nan, np.nan, 111, np.nan]],
columns=[*'abcde'])
然后你可以notna用來創建布爾資料框;然后apply是一個 lambda 函式,用于過濾每一行的非 NaN 值的最后一列名稱:
df['last'] = df.notna().apply(lambda x: df.columns[x][-1], axis=1)
輸出:
a b c d e last
0 1 NaN NaN 3.0 NaN d
1 10 11.0 12.0 13.0 14.0 e
2 101 102.0 NaN NaN NaN b
3 110 NaN NaN 111.0 NaN d
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431725.html
