鑒于以下資料框:
ID | Y1 | Y2 | Y3|
--- ------ -------- -----
0 | NaN | 8 | 4 |
1 | NaN | NaN | 1 |
2 | NaN | NaN | NaN|
3 | 5 | 3 | NaN|
我想創建一個額外的列,其中包含該行中帶有 nan 的所有列,如下所示:
ID | Y1 | Y2 | Y3| Result |
--- ------ -------- ----- -----------------
0 | NaN | 8 | 4 | ['Y1'] |
1 | NaN | NaN | 1 | ['Y1','Y2'] |
2 | NaN | NaN | NaN |['Y1','Y2','Y3'] |
3 | 5 | 3 | 7 | [] |
uj5u.com熱心網友回復:
我們可以做的dot,然后split
s = df.filter(like='Y')
df['new'] = s.isna().dot(s.columns ',').str[:-1].str.split(',')
df
Out[81]:
ID Y1 Y2 Y3 new
0 0 NaN 8.0 4.0 [Y1]
1 1 NaN NaN 1.0 [Y1, Y2]
2 2 NaN NaN NaN [Y1, Y2, Y3]
3 3 5.0 3.0 NaN [Y3]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/341075.html
