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

datetimehrrmssdneutralhappysadangry
2012-09-18 13:17:0061.00.0614200.8845700.0769520.0011440.017392
2012-09-18 13:18:0064.00.0496630.9319650.0314680.0003710.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相关问答推荐

如何从两个不同文件中的两个不同类中获取函数以相互通信?

基于另一列创建 DataFrame 列(更快的解决方案)

基于另一列的布尔值的累积和

使用 Beautiful Soup 用 LaTeX 命令替换 XML 标签

如何仅使用 NumPy 实现 tfio rgb2xyz?

创建一个热标签,一个基于多个条件的热编码

使用多处理进程时Python多次导入

获取 numpy.linalg.svd 和 numpy 矩阵乘法以使用多线程

根据所有列值在Pandas 中 Select 一行

用粗线关闭matplotlib图中的圆角

pytest 在代码中调用:仅在当前文件中运行测试

重新训练 pytorch 模型(增强学习)

Python中的多列插值

有符号十进制转二进制

调用静态方法的惯用方式

查找同时满足两个条件的行

Pandas 根据多个条件遍历行然后从列中减去?

使用类对象设置 Numpy 数组元素

使用 BeautifulSoup 和 Selenium 的抓取问题

围绕索引创建掩码数组的 Numpy 最快方法