当两列在一行中具有最大值时查找最后一列名称 python
finding last column name when two columns have max value in one row python
这是我的数据框
x y z
0 1 0 0
1 1 0 1
2 0 0 1
3 0 1 1
4 1 1 0
当我使用 df.idxmax(axis=1)
我得到的输出是
x
x
z
y
x
我想要的输出是
x
z
z
z
y
当两行都包含最大值时,请帮我找到最大行的列名
为什么不使用映射或应用或转换并调用函数来生成每行所需的结果?
Df[“result”]=Df.map(mydictionary)
Mydictionary returns x or y or z
取垂直对称然后idxmax怎么样,即
df.iloc[:, ::-1].idxmax(axis=1)
0 x
1 z
2 z
3 z
4 y
所以 df.iloc[:, ::-1]
部分是
z y x
0 0 0 1
1 1 0 1
2 1 0 0
3 1 1 0
4 0 1 1
现在从 z 到 x
另一种重建索引的方式可能更清楚地表明意图:
df.reindex(columns=df.columns[::-1]).idxmax(axis=1)
0 x
1 z
2 z
3 z
4 y
同上。
这是我的数据框
x y z
0 1 0 0
1 1 0 1
2 0 0 1
3 0 1 1
4 1 1 0
当我使用 df.idxmax(axis=1)
我得到的输出是
x
x
z
y
x
我想要的输出是
x
z
z
z
y
当两行都包含最大值时,请帮我找到最大行的列名
为什么不使用映射或应用或转换并调用函数来生成每行所需的结果?
Df[“result”]=Df.map(mydictionary)
Mydictionary returns x or y or z
取垂直对称然后idxmax怎么样,即
df.iloc[:, ::-1].idxmax(axis=1)
0 x
1 z
2 z
3 z
4 y
所以 df.iloc[:, ::-1]
部分是
z y x
0 0 0 1
1 1 0 1
2 1 0 0
3 1 1 0
4 0 1 1
现在从 z 到 x
另一种重建索引的方式可能更清楚地表明意图:
df.reindex(columns=df.columns[::-1]).idxmax(axis=1)
0 x
1 z
2 z
3 z
4 y
同上。