【Pandas】pandas Series idxmin
Pandas2.2 Series
Computations descriptive stats
| 方法 | 描述 |
|---|---|
| Series.align(other[, join, axis, level, …]) | 用于将两个 Series 对齐,使其具有相同的索引 |
| Series.case_when(caselist) | 用于根据条件列表对 Series 中的元素进行条件判断并返回相应的值 |
| Series.drop([labels, axis, index, columns, …]) | 用于从 Series 中删除指定的行或列(对于 Series 来说,通常是删除行) |
| Series.droplevel(level[, axis]) | 用于从多层索引(MultiIndex)的 Series 中删除指定的索引层级 |
| Series.drop_duplicates(*[, keep, inplace, …]) | 用于从 Series 中删除重复的值 |
Series.duplicated([keep]) | 用于检测 Series 中的重复值 |
| Series.equals(other) | 用于比较两个 Series 对象是否完全相等的方法 |
| Series.first(offset) | 用于根据日期偏移量(offset)选择 Series 中时间序列数据的初始部分 |
Series.head([n]) | 用于返回 Series 的前 n 个元素 |
| Series.idxmax([axis, skipna]) | 用于返回 Series 中最大值的索引 |
| Series.idxmin([axis, skipna]) | 用于返回 Series 中最小值的索引 |
pandas.Series.idxmin
当然,pandas.Series.idxmin([axis, skipna]) 方法用于返回 Series 中最小值的索引。这个方法在数据处理和分析中非常有用,特别是在需要快速找到最小值位置时。
详细描述
pandas.Series.idxmin([axis, skipna]) 方法的参数:
axis(可选): 指定轴,对于Series对象,这个参数通常不需要指定,因为Series只有一个轴。默认值为0。skipna(可选): 布尔值,表示是否跳过 NaN 值。默认值为True。
返回值
- 返回一个标量,表示最小值的索引。
示例代码
import pandas as pd
import numpy as np# 创建一个示例 Series
data = [10, 20, 30, 40, 50, np.nan, 60, 70, 80, 90]
index = pd.date_range('2023-01-01', periods=10, freq='D')
series = pd.Series(data, index=index)print("Original Series:")
print(series)# 使用 idxmin 方法获取最小值的索引(默认 skipna=True)
min_index = series.idxmin()
print("\nIndex of minimum value (skipna=True):", min_index)# 使用 idxmin 方法获取最小值的索引(skipna=False)
min_index_no_skipna = series.idxmin(skipna=False)
print("\nIndex of minimum value (skipna=False):", min_index_no_skipna)
结果输出
Original Series:
2023-01-01 10.0
2023-01-02 20.0
2023-01-03 30.0
2023-01-04 40.0
2023-01-05 50.0
2023-01-06 NaN
2023-01-07 60.0
2023-01-08 70.0
2023-01-09 80.0
2023-01-10 90.0
Freq: D, dtype: float64Index of minimum value (skipna=True): 2023-01-01 00:00:00Index of minimum value (skipna=False): NaT
解释
series.idxmin()默认跳过 NaN 值,返回最小值10的索引2023-01-01。series.idxmin(skipna=False)不跳过 NaN 值,由于存在 NaN 值,返回nan。
注意事项
- 如果
Series中有多个相同的最小值,idxmin返回第一个出现的最小值的索引。 - 如果
Series中所有值都是 NaN,idxmin(skipna=True)返回nan。
示例:多个相同的最小值
# 创建一个包含多个相同最小值的 Series
data = [10, 10, 30, 40, 50, 60, 70, 80, 90]
index = pd.date_range('2023-01-01', periods=9, freq='D')
series_multiple_min = pd.Series(data, index=index)print("\nSeries with multiple minimum values:")
print(series_multiple_min)# 使用 idxmin 方法获取最小值的索引
min_index_multiple = series_multiple_min.idxmin()
print("\nIndex of minimum value (multiple min values):", min_index_multiple)
结果输出
Series with multiple minimum values:
2023-01-01 10
2023-01-02 10
2023-01-03 30
2023-01-04 40
2023-01-05 50
2023-01-06 60
2023-01-07 70
2023-01-08 80
2023-01-09 90
Freq: D, dtype: int64Index of minimum value (multiple min values): 2023-01-01 00:00:00
解释
series_multiple_min.idxmin()返回第一个出现的最小值10的索引2023-01-01。
