pandasmax函数如果有多个最大值怎么都获取到
时间: 2024-11-15 14:33:05 浏览: 14
Pandas库中的`max()`函数默认返回单个最大值,如果需要获取所有最大值的位置或者是当有多列数据有相同的最大值时,你可以使用其他方法。这里有一些选项:
1. **使用`idxmax()`**:这将返回每列的最大值所在的行索引,可以结合`drop_duplicates()`或`sort_index()`来提取所有最大值。
```python
df.loc[df.idxmax().drop_duplicates()]
```
2. **自定义函数**:可以创建一个自定义函数,例如使用`numpy.argmax()`,然后遍历DataFrame的每一列来找到最大值及其所在位置。
```python
import numpy as np
def get_max_indices(df):
return df.apply(lambda col: np.where(col == col.max())[0], axis=0)
indices = get_max_indices(df)
df.iloc[indices]
```
3. **分组后聚合**:如果数据按某列分组后仍有多个最大值,可以用`groupby().apply(max)`,再结合`duplicated()`检查是否有重复最大值。
```python
grouped = df.groupby('group_column').apply(lambda group: group[group['column'].eq(group['column'].max())])
```
阅读全文