python - 将值添加到数据框列中的最大值
问题描述
我有一个数据框:
Region | A | B | C | Total
===============================================================
Africa | 100.10 | 20.135 | 10.02 | 130.255
---------------------------------------------------------------
Europe | 200.35 | 50.102 | 16.35 | 266.802
---------------------------------------------------------------
India | 30.98 | 150.18 | 12.63 | 193.79
---------------------------------------------------------------
Unknown | 2.36 | 5.108 | 1.96 | 9.428
我想在数据框列中找到最大值,并想向其中添加“未知”行值并删除“未知行”。
我做了 df['A'].max(), df['B'].max() & df['C'].max() 在列中返回最大值但是我如何添加“未知”行值吗?
我希望输出是:
Region | A | B | C | Total
===============================================================
Africa | 100.10 | 20.135 | 10.02 | 130.255
---------------------------------------------------------------
Europe | 202.71 | 50.102 | 18.31 | 271.122
---------------------------------------------------------------
India | 30.98 | 155.288 | 12.63 | 198.898
解释:
(df['A'].max() = 200.35) + 2.36 = 202.71
(df['B'].max() = 150.18) + 5.108 = 155.288
(df['C'].max() = 16.35) + 1.96 = 18.31
解决方案
mul
与布尔掩码一起使用
df=df.set_index('Region')
df+=(df==df.max()).mul(df.loc['Unknown'])
df=df.drop('Unknown',axis=0)
df.Total=df.iloc[:,:-1].sum(1)
df
A B C Total
Region
Africa 100.1 20.135 10.02 130.255
Europe 202.71 50.102 18.31 271.122
India 30.98 155.288 12.63 198.898
推荐阅读
- python-3.x - 破折号巧妙地克服了重复的回调
- c - 直接从 C 中的函数调用访问结构元素
- javascript - 我需要访问对象内的属性,但它总是以未定义的形式返回
- python - 迭代和组合列表中的元素
- javascript - 添加 cipher.update() 和 cipher.final() 并连接它们有什么区别?
- c# - 我怎样才能知道哪个“SerialPort”触发了给定的“DataReceived”事件?
- android - Capacitor Release APK 未安装 | 离子应用
- javascript - 使用hammer.js 的Y-pan 事件延迟
- python - Discord.PY 和 SMPTlib 'ascii' 编解码器无法对位置 89-92 中的字符进行编码:序数不在范围内(128)
- mysql - mySQL JSON_TABLE 查询返回嵌套数据