You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Pandas DataFrame列返回最值索引及指定值对应的索引?

解决Pandas DataFrame中获取特定值索引的问题

我来帮你搞定这两个关于Pandas索引的需求,结合你给出的movies_per_year示例DataFrame来一步步说明:

首先先还原你的示例数据结构,方便后续演示:

import pandas as pd

# 构造示例数据
data = {
    'year': [1891, 1893, 1894, 1895, 1896, 1898],
    'count': [1, 1, 2, 2, 2, 5]
}
movies_per_year = pd.DataFrame(data).set_index('year')
movies_per_year.columns = ["count"]

1. 获取最大值/最小值对应的索引值

你提到movies_per_year.max()返回了5,但需要拿到它对应的索引1898。这里直接用Pandas的idxmax()方法就能轻松实现:

# 获取count列最大值对应的索引
max_year = movies_per_year['count'].idxmax()
print(f"最大值5对应的年份索引:{max_year}")  # 输出:1898

如果要获取最小值对应的索引,用idxmin()方法即可:

# 获取count列最小值对应的索引
min_year = movies_per_year['count'].idxmin()
print(f"最小值1对应的年份索引:{min_year}")  # 输出:1891

注意:如果列中有多个相同的最大值/最小值,idxmax()/idxmin()会默认返回第一个出现的那个值的索引。

2. 获取特定值的所有索引

要返回所有count值为1的索引(也就是年份1891和1893),我们可以通过布尔索引筛选出符合条件的行,再提取它们的索引:

# 筛选count等于1的行,提取其索引
target_years = movies_per_year[movies_per_year['count'] == 1].index
# 转成列表方便查看
print(f"所有count值为1的年份索引:{target_years.tolist()}")  # 输出:[1891, 1893]

这样就能精准拿到你需要的索引啦!

内容的提问来源于stack exchange,提问作者Yash Ghorpade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:22:07