我有一个如下所示的数据框:

datetime hr rmssd neutral happy sad angry
2012-09-18 13:17:00 61.0 0.061420 0.884570 0.076952 0.001144 0.017392
2012-09-18 13:18:00 64.0 0.049663 0.931965 0.031468 0.000371 0.023774

我想要的是能够创建一个新列,在每一行上指定具有最大值的列的名称:即:在第一列中,将有一个情感列,声明"中立".

for i in range(0,len(df3)):
    df3['emotion']=df3[['neutral','happy','sad','angry']].max()

但我生成的数据框有一个额外的列,名为"情感",其中填充了NaN值.注意,我已经从df中删除了所有NaN值.

我还try 使用iloc:

for i in range(0,len(df3)):
    df3['emotion']=df3.iloc[3:][i].max()

但那里也没有运气.有什么 idea 吗?

推荐答案

这应该在没有for-loop的情况下工作.基于this answer->;复制

df3['emotion'] = df3[['neutral','happy','sad','angry']].idxmax(axis=1)

Python相关问答推荐

try 与gemini-pro进行多轮聊天时出错

Deliveryter Notebook -无法在for循环中更新matplotlib情节(保留之前的情节),也无法使用动画子功能对情节进行动画

为什么tkinter框架没有被隐藏?

删除任何仅包含字符(或不包含其他数字值的邮政编码)的观察

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

如何在polars(pythonapi)中解构嵌套 struct ?

数据抓取失败:寻求帮助

在Mac上安装ipython

try 将一行连接到Tensorflow中的矩阵

如果初始groupby找不到满足掩码条件的第一行,我如何更改groupby列,以找到它?

Maya Python脚本将纹理应用于所有对象,而不是选定对象

将标签移动到matplotlib饼图中楔形块的开始处

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

BeautifulSoup:超过24个字符(从a到z)的迭代失败:降低了首次深入了解数据集的复杂性:

浏览超过10k页获取数据,解析:欧洲搜索服务:从欧盟站点收集机会的微小刮刀&

在matplotlib中重叠极 map 以创建径向龙卷风图

仅取消堆叠最后三列

与同步和异步客户端兼容的Python函数

Pandas:使列中的列表大小与另一列中的列表大小相同

PyTorch变压器编码器中的填充掩码问题