【发布时间】:2022-11-18 02:56:47
【问题描述】:
我有一个包含一些列的数据集,我想创建另一列,其中值是具有最高值的变量的列名但不同于 1
例如:
df = pd.DataFrame({'A': [1, 0.2, 0.1, 0],
'B': [0.2,1, 0, 0.5],
'C': [1, 0.4, 0.3, 1]},
index=['1', '2', '3', '4'])
df
| index | A | B | C |
|---|---|---|---|
| 1 | 1.0 | 0.2 | 1.0 |
| 2 | 0.2 | 1.0 | 0.4 |
| 3 | 0.1 | 0.0 | 0.3 |
| 4 | 0.0 | 0.5 | 1.0 |
应该给出类似的输出
| index | A | B | C | NEWCOL |
|---|---|---|---|---|
| 1 | 1.0 | 0.2 | 1.0 | B |
| 2 | 0.2 | 0.3 | 0.1 | C |
| 3 | 0.1 | 0.4 | 0.2 | B |
| 4 | 0.0 | 0.5 | 1.0 | B |
df2['newcol'] = df2.idxmax(axis=1) if df2.max(index=1) != 1
但没用
【问题讨论】:
标签: pandas dataframe numpy dataset