作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对不透明的问题名称表示歉意(不确定如何表达)。我有以下数据框:
import pandas as pd
import numpy as np
data = [['tom', 1,1,6,4],
['tom', 1,2,2,3],
['tom', 1,2,3,1],
['tom', 2,3,2,7],
['jim', 1,4,3,6],
['jim', 2,6,5,3]]
df = pd.DataFrame(data, columns = ['Name', 'Day','A','B','C'])
df = df.groupby(by=['Name','Day']).agg('sum').reset_index()
df
我想添加另一列,根据 A,B,C
的哪一列最高返回文本:
例如,如果 A
最高,我想要 Apple
,如果 B
最高,我想要 Banana
,并且 Carrot
如果 C
最高。所以在上面的例子中,4 列的值应该是:
New Col
Carrot
Apple
Banana
Carrot
任何帮助将不胜感激!谢谢
最佳答案
使用DataFrame.idxmax
沿 axis=1
与 Series.map
:
dct = {'A': 'Apple', 'B': 'Banana', 'C': 'Carrot'}
df['New col'] = df[['A', 'B', 'C']].idxmax(axis=1).map(dct)
结果:
Name Day A B C New col
0 jim 1 4 3 6 Carrot
1 jim 2 6 5 3 Apple
2 tom 1 5 11 8 Banana
3 tom 2 3 2 7 Carrot
关于python - 如何将多列中的最大值返回到 pandas df 中的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62874419/
我是一名优秀的程序员,十分优秀!