如何从数据框中获取多列的一个最小值/最大值?我找不到一种简单的方法来获取这些值,只能循环遍历列或多次转换数据帧。我认为必须有更好的方法来解决这个问题。例如,这里有一些代码...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 回答
大话西游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
料青山看我应如是
TA贡献1772条经验 获得超8个赞
如果您不确定列名称,并且想在最后 2 列上执行此操作,您可以执行以下操作:
In [2138]: df.iloc[:, -2:].agg(['max', 'min'])
Out[2138]:
C D
max 9.0 14
min 2.0 3
添加回答
举报
0/150
提交
取消