我有一个Dataframe,其索引设置为日期。我需要找到传感器值最小的行(每个月的参数集)。 我尝试过的代码如下:
1.optimization = r.loc[[r.index.month == month]]
optimization=r.loc[r['Sensors'].idxmin()]
2.optimization=DataFrame(r.resample('M').Sensors.min())
3.optimization=r.loc[r['Sensors'].idxmin()]
4.optimization= r.loc[r.groupby([r.index.month == month])["Sensors"].idxmin()]
我的datat farme:
Index ACH_Base Am Energy Sensors
2017_01_31 0.3 0.9 2.2989e+11 39087428391.1
2017_01_31 0.5 0.8 2.29892e+11 37142574944.9
....
2017_02_28 0.7 0.9 2.40001e+11 38568420286.9
2017_02_28 0.3 0.7 2.7136+11 36945759284.8
....
谢谢!
答案 0 :(得分:0)
您可以使用Resampler.transform
获取每month
的最小值,与Sensors
进行比较并按boolean indexing
过滤:
df.index = pd.to_datetime(df.index, format='%Y_%m_%d')
df = df[df['Sensors'] == df.resample('M')['Sensors'].transform('min')]
print (df)
ACH_Base Am Energy Sensors
2017-01-31 0.5 0.8 2.29892e+11 3.714257e+10
2017-02-28 0.3 0.7 2.7136+11 3.694576e+10