Pandas如何获取DataFrame每行的第二大数值
Pandas 计算每行第二大数值的解决方案
- 方法1:使用
apply+nlargest实现,适合小数据量场景,逻辑直观
# 按行计算,取每行前2大的数值,再取第二个即为第二大值 second_largest = DATA.apply(lambda row: row.nlargest(2).iloc[-1], axis=1)
运行后输出结果为:
0 12 1 8 2 4 3 5 dtype: int64
- 方法2:使用NumPy排序实现,运算效率更高,适合万行以上的大数据量DataFrame
import numpy as np # axis=1 按行升序排序后,取每行倒数第二个元素即为第二大值 second_largest = np.sort(DATA, axis=1)[:, -2]
运行后返回的数组结果为 array([12, 8, 4, 5]),可直接转为Series使用。
内容的提问来源于stack exchange,提问作者Jacopo Centofanti
相关产品推荐
相关产品推荐

