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

Pet*_*ter 1 python max min pandas

如何从数据框中获取多列的一个最小值/最大值?我找不到获取这些值的简单方法,只能循环遍历列或多次转换数据帧。我认为必须有更好的方法来解决这个问题。

例如,这里有一些代码...

import pandas as pd

df = pd.DataFrame([[0,1,2,3],
                  [6,5,None,pd.NaT],
                  [8,None,9,None],
                  [None,12,7,14]], columns=list('ABCD'))
Run Code Online (Sandbox Code Playgroud)

...这是数据框的样子,我想要列“C”和“D”的最小值/最大值。

     A     B    C     D
0  0.0   1.0  2.0     3
1  6.0   5.0  NaN   NaT
2  8.0   NaN  9.0  None
3  NaN  12.0  7.0    14
Run Code Online (Sandbox Code Playgroud)

有什么好的方法可以做到这一点?

附加说明:两列 ['C','D'] 的结果应该是 min (2) 的一个值和 max (14) 的一个值

Sco*_*ton 6

您可以使用,

df[['C','D']].min().min()
2.0
Run Code Online (Sandbox Code Playgroud)

df[['C', 'D']].max().max()
14.0
Run Code Online (Sandbox Code Playgroud)


jez*_*ael 5

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

df1 = df[['C','D']].agg(['min','max'])
print (df1)
       C   D
min  2.0   3
max  9.0  14
Run Code Online (Sandbox Code Playgroud)

编辑:对于 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
Run Code Online (Sandbox Code Playgroud)