为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 pandas 数据帧的多列中求最小值/最大值?

如何在 pandas 数据帧的多列中求最小值/最大值?

慕婉清6462132 2024-01-04 16:46:53
如何从数据框中获取多列的一个最小值/最大值?我找不到一种简单的方法来获取这些值,只能循环遍历列或多次转换数据帧。我认为必须有更好的方法来解决这个问题。例如,这里有一些代码...import pandas as pddf = pd.DataFrame([[0,1,2,3],                  [6,5,None,pd.NaT],                  [8,None,9,None],                  [None,12,7,14]], columns=list('ABCD'))...这就是数据框的样子,我想要列“C”和“D”的最小值/最大值。     A     B    C     D0  0.0   1.0  2.0     31  6.0   5.0  NaN   NaT2  8.0   NaN  9.0  None3  NaN  12.0  7.0    14有什么好的方法可以做到这一点?附加说明:两列 ['C','D'] 的结果应为最小值 (2) 的一个值和最大值 (14) 的一个值
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

您可以使用,

df[['C','D']].min().min()
2.0

df[['C', 'D']].max().max()
14.0


查看完整回答
反对 回复 2024-01-04
?
大话西游666

TA贡献1817条经验 获得超14个赞

DataFrame.agg与按列表选择的列一起使用- ['C','D']

df1 = df[['C','D']].agg(['min','max'])

print (df1)

       C   D

min  2.0   3

max  9.0  14

编辑:对于 2 个标量,您可以使用:


s = df[['C','D']].stack()

print (s)

0  C     2

   D     3

2  C     9

3  C     7

   D    14

dtype: object


a = s.max()

print (a)

14


b = s.min()

print (b)

2


查看完整回答
反对 回复 2024-01-04
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

如果您不确定列名称,并且想在最后 2 列上执行此操作,您可以执行以下操作:


In [2138]: df.iloc[:, -2:].agg(['max', 'min'])

Out[2138]: 

       C   D

max  9.0  14

min  2.0   3


查看完整回答
反对 回复 2024-01-04
  • 3 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信