sar*_*iii 4 python data-analysis dataframe pandas
我有这样的数据帧:
ADR WD EF INF SSI DI
0 1.0 NaN NaN NaN NaN NaN
1 NaN NaN 1 1 NaN NaN
2 NaN NaN NaN NaN 1 NaN
3 NaN 1 1 1 NaN NaN
4 NaN 1.0 NaN NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)
我希望结果是这样的:
[["ADR"],["EF","INF"],["SSI"],["WD","EF","INF"],["WD"]]
Run Code Online (Sandbox Code Playgroud)
如您所见,如果列中有列的名称已被替换1.所有都被放在另一个阵列中.
我看过这个帖子链接,但它没有帮助我,因为名称已经静态改变.
谢谢:)
用:
df1 = df.stack().reset_index()
df1.columns = ['a','b','c']
df1 = df1[df1['c'] == 1]
a = df1.groupby('a')['b'].apply(list).tolist()
print (a)
[['ADR'], ['EF', 'INF'], ['SSI'], ['WD', 'EF', 'INF'], ['WD']]
Run Code Online (Sandbox Code Playgroud)
IIUC dot
df.notnull().dot(df.columns+',').str[:-1].str.split(',').tolist()
Out[753]: [['ADR'], ['EF', 'INF'], ['SSI'], ['WD', 'EF', 'INF'], ['WD']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |