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

Python:查找日期索引DataFrame中每月传感器最小值所在行

解决按月份提取传感器最小值对应完整行的问题

嗨,我来帮你搞定这个需求!你需要从以日期为索引的DataFrame里,找出每个月Sensors值最小的完整行(也就是该行的所有参数),咱们先聊聊你之前试的几种方法为啥没达到预期,再给你正确的实现方式。

你之前尝试的方法问题分析

  • 第一种代码:optimization = r.loc[[r.index.month == month]] optimization=r.loc[r['Sensors'].idxmin()]
    这里的问题是,r.index.month == month需要指定具体的月份值(比如1代表1月),而且后面的r['Sensors'].idxmin()是取整个DataFrame中Sensors最小的行,不是分月计算的,最终只能得到全局最小的那一行,不是每个月的结果。
  • 第二种代码:optimization=DataFrame(r.resample('M').Sensors.min())
    这个方法确实能得到每个月的最小Sensors值,但只保留了这一列,丢失了其他列(比如ACH_Base、Am等)的信息,没法拿到完整的参数集合。
  • 第三种代码:optimization=r.loc[r['Sensors'].idxmin()]
    和第一种的后半段一样,只能拿到全局Sensors最小的那一行,不是分月的结果。
  • 第四种代码:optimization= r.loc[r.groupby([r.index.month == month])["Sensors"].idxmin()]
    r.index.month == month是一个布尔判断,分组的是“等于指定月份”和“不等于指定月份”两组,不是按每个自然月分组,所以结果完全不符合预期。

正确的实现方式

首先要确保你的DataFrame索引是DatetimeIndex(日期时间类型),如果还不是的话,先转换:

import pandas as pd
r.index = pd.to_datetime(r.index)

场景1:不区分年份(比如所有1月的数据放一起取最小)

按月份分组,提取每个组内Sensors最小的完整行:

optimization = r.loc[r.groupby(r.index.month)['Sensors'].idxmin()]

原理:r.groupby(r.index.month)把数据按1-12月分成12组,['Sensors'].idxmin()获取每个组内Sensors值最小的行的索引,最后用loc取出这些行,保留所有列的信息。

场景2:区分年份(比如2023年1月和2024年1月分开计算)

如果你的数据跨年度,需要按“年-月”分组,有两种写法:

写法一:按年和月分组

optimization = r.loc[r.groupby([r.index.year, r.index.month])['Sensors'].idxmin()]

写法二:用resample更简洁

利用resample('M')按自然月重采样,再用apply提取每个月的目标行:

optimization = r.resample('M').apply(lambda x: x.loc[x['Sensors'].idxmin()])

这个方法会自动按每个自然月分组,并且保留所有列的完整数据。

示例测试

这里给你一个可运行的示例,方便你验证:

import pandas as pd
import numpy as np

# 创建模拟数据:60天的日期索引,包含Sensors、ACH_Base、Am列
dates = pd.date_range('2023-01-01', periods=60, freq='D')
df = pd.DataFrame({
    'Sensors': np.random.randint(1, 100, size=60),
    'ACH_Base': np.random.rand(60),
    'Am': np.random.rand(60)
}, index=dates)

# 按年-月提取Sensors最小的完整行
result = df.loc[df.groupby([df.index.year, df.index.month])['Sensors'].idxmin()]
print(result)

内容的提问来源于stack exchange,提问作者Maryam Nahid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:21:58