zih*_*eng 4 python for-loop pandas
我是python的新手.我有一个如下所示的数据框:
A B C D E
0 1 0 1 0 1
1 0 1 0 0 1
2 0 1 1 1 0
3 1 0 0 1 0
4 1 0 0 1 1
Run Code Online (Sandbox Code Playgroud)
如何编写for循环来收集每行的列名.我希望我的结果集看起来像那样:
A B C D E Result
0 1 0 1 0 1 ACE
1 0 1 0 0 1 BE
2 0 1 1 1 0 BCD
3 1 0 0 1 0 AD
4 1 0 0 1 1 ADE
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我吗?谢谢!
该dot功能是为此目的完成的,因为您需要矩阵和列名矢量之间的矩阵点积:
df.dot(df.columns)
Out[5]:
0 ACE
1 BE
2 BCD
3 AD
4 ADE
Run Code Online (Sandbox Code Playgroud)
如果您的数据帧是数字,那么首先通过测试您的df0来获取布尔矩阵:
(df!=0).dot(df.columns)
Run Code Online (Sandbox Code Playgroud)
PS:只需将结果分配给新列
df['Result'] = df.dot(df.columns)
df
Out[7]:
A B C D E Result
0 1 0 1 0 1 ACE
1 0 1 0 0 1 BE
2 0 1 1 1 0 BCD
3 1 0 0 1 0 AD
4 1 0 0 1 1 ADE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |