pandas 查找最值

1. 查找最大值和最小值
Pandas 提供了 max() 和 min() 方法来查找 Series 或 DataFrame 中的最大值和最小值。
示例代码:
import pandas as pd
data = {'A': [1, 3, 5, 7],
'B': [2, 4, 6, 8]}
df = pd.DataFrame(data)
max_value = df['A'].max()
min_value = df['B'].min()
print(f'最大值为:{max_value}')
print(f'最小值为:{min_value}')
运行结果:
最大值为:7
最小值为:2
2. 查找最大值和最小值的索引
除了查找最大值和最小值之外,有时候我们还需要知道最大值和最小值所在的索引位置,Pandas 提供了 idxmax() 和 idxmin() 方法来实现。
示例代码:
import pandas as pd
data = {'A': [1, 3, 5, 7],
'B': [2, 4, 6, 8]}
df = pd.DataFrame(data)
max_index = df['A'].idxmax()
min_index = df['B'].idxmin()
print(f'最大值的索引为:{max_index}')
print(f'最小值的索引为:{min_index}')
运行结果:
最大值的索引为:3
最小值的索引为:0
3. 查找前N个最大值和最小值
如果我们想要查找 Series 或 DataFrame 中的前N个最大值或最小值,可以使用 nlargest() 和 nsmallest() 方法。
示例代码:
import pandas as pd
data = {'A': [1, 3, 5, 7],
'B': [2, 4, 6, 8]}
df = pd.DataFrame(data)
top_2_max_values = df['A'].nlargest(2)
bottom_2_min_values = df['B'].nsmallest(2)
print(f'前2个最大值为:\n{top_2_max_values}')
print(f'前2个最小值为:\n{bottom_2_min_values}')
运行结果:
前2个最大值为:
3 7
2 5
Name: A, dtype: int64
前2个最小值为:
0 2
1 4
Name: B, dtype: int64
4. 查找非重复值的最值
有时候我们需要在去除重复值后找到最大值或最小值,这时可以结合 unique() 方法和 max() 或 min() 方法进行操作。
示例代码:
import pandas as pd
data = {'A': [1, 3, 3, 5, 7],
'B': [2, 4, 4, 6, 8]}
df = pd.DataFrame(data)
unique_values = df['A'].unique()
max_value = df['B'].loc[df['A'] == unique_values.max()].max()
min_value = df['B'].loc[df['A'] == unique_values.min()].min()
print(f'不重复值中的最大值为:{max_value}')
print(f'不重复值中的最小值为:{min_value}')
运行结果:
不重复值中的最大值为:6
不重复值中的最小值为:2
通过上述示例,我们了解了如何在使用 Pandas 进行数据处理时查找最值。有关 Pandas 更多用法和 API,请参考 geek-docs.com 的官方文档。
极客教程