我有以下数据框

import pandas as pd
data = [[5,4,3,2,6,8], [9,1,5,4,8,6], [7,6,8,1,2,4], [9,6,5,4,8,3]]
df = pd.DataFrame(data, columns=['Col1','Col2','Col3','Col4','Col5','Col6'])
df

我正在try 显示每行的最小值以及列名.

df=df.min(axis=1)
df

输出:

2
1
1
3

但是,如何才能添加与这些最小行数对应的列名呢?

我的预期yields 是

2    col4
1    col2
1    col4
3    col6

推荐答案

您可以try :

df[['Col', 'Value']] = df.apply(lambda x: [idx:=x.idxmin(), x[idx]], axis=1, result_type='expand')
print(df)

打印:

   Col1  Col2  Col3  Col4  Col5  Col6   Col  Value
0     5     4     3     2     6     8  Col4      2
1     9     1     5     4     8     6  Col2      1
2     7     6     8     1     2     4  Col4      1
3     9     6     5     4     8     3  Col6      3

如果你只想要Col,Value:

print(df[['Col', 'Value']].set_index('Value'))

打印:

        Col
Value      
2      Col4
1      Col2
1      Col4
3      Col6

Python相关问答推荐

如何将Matplotlib的fig.add_axes本地坐标与我的坐标关联起来?

模型序列化器中未调用现场验证器

将DF中的名称与另一DF拆分并匹配并返回匹配的公司

替换字符串中的多个重叠子字符串

将jit与numpy linSpace函数一起使用时出错

难以在Manim中正确定位对象

输出中带有南的亚麻神经网络

为什么这个带有List输入的简单numba函数这么慢

在Python中管理打开对话框

log 1 p numpy的意外行为

对所有子图应用相同的轴格式

如何在Python脚本中附加一个Google tab(已经打开)

使用密钥字典重新配置嵌套字典密钥名

将JSON对象转换为Dataframe

如何在图中标记平均点?

如何在FastAPI中为我上传的json文件提供索引ID?

Pandas:填充行并删除重复项,但保留不同的值

30个非DATETIME天内的累计金额

Python将一个列值分割成多个列,并保持其余列相同

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?