如何获取Pandas DataFrame中的最大值/最小值

问题描述 投票:9回答:5

由于我的pandas数据帧的一列有nan值,所以当我想获得该列的最大值时,它只返回错误。

>>> df.iloc[:, 1].max()
'error:512'

如何跳过nan值并获取该列的最大值?

python pandas
5个回答
11
投票

你可以使用NumPynp.nanmaxnp.nanmin的帮助:

In [28]: df
Out[28]: 
   A   B  C
0  7 NaN  8
1  3   3  5
2  8   1  7
3  3   0  3
4  8   2  7

In [29]: np.nanmax(df.iloc[:, 1].values)
Out[29]: 3.0

In [30]: np.nanmin(df.iloc[:, 1].values)
Out[30]: 0.0

10
投票

你可以使用Series.dropna

res = df.iloc[:, 1].dropna().max()

1
投票

当df包含NaN值时,它会报告NaN值,使用np.nanmax(df.values)给出了所需的答案。


1
投票

Dataframe聚合函数.agg()将自动忽略NaN值。 df.agg({'income':'max'})

此外,它也可以与.groupby一起使用

df.groupby('column').agg({'income':['max','mean']})


0
投票

如果你不使用iloc或loc,它很简单:

df['column'].max()

要么

df['column'][df.index.min():df.index.max()]

或者在第二个方括号中的任何范围

© www.soinside.com 2019 - 2024. All rights reserved.