![](/img/trans.png)
[英]How to extract and group values from a Pandas Dataframe column based on the spread of the values
[英]How to extract values from a dataframe based on dates?
我有一个 DataFrame(见下图),其中包含我想检索几个值的每日值。 我想检索:每月平均值、每月最小值、每月最大值、每年最小值、年数等。目前我正在重新采样 DataFrame 以检索这些值(参见下面的代码),但必须有更好的方法。
T_monthly=pd.DataFrame() # Create dataframe for monthly temperatures
T_monthly['Basse']=temp_basse.iloc[:,3].resample("M").mean() # Add Basse
T_monthly['Basse_min']=temp_basse.iloc[:,3].resample("M").min()
T_monthly['Basse_max']=temp_basse.iloc[:,3].resample("M").max()
T_monthly['Kedougou']=temp_kedougou.iloc[:,3].resample("M").mean() # Add Kedougou
T_monthly['Kedougou_min']=temp_kedougou.iloc[:,3].resample("M").min()
T_monthly['Kedougou_max']=temp_kedougou.iloc[:,3].resample("M").max()
T_yearly=pd.DataFrame() # Create dataframe for yearly temperatures
T_yearly['Basse_min']=temp_basse.iloc[:,3].resample("Y").min()
T_yearly['Basse_max']=temp_basse.iloc[:,3].resample("Y").max()
T_yearly['Kedougou_min']=temp_kedougou.iloc[:,3].resample("Y").min()
T_yearly['Kedougou_max']=temp_kedougou.iloc[:,3].resample("Y").max()
最好我想要一个 function ,我可以在其中输入一个日期,例如 2014, 2 (Y, M) 并检索所有必要的值,而无需重新采样到新的 DataFrames。 例如:
输入: (2014, 2)
output:[月平均值、月最小值、月最大值、年最小值、年最大值]
目前我的函数使用数据帧的索引号(见下文)。 但是,如果我想输入某个日期,我首先需要找到相应的索引号。
T_monthly.iloc[i, 3]
提前致谢!
在 Sowjanya R Bhat 的建议之后又添加了两列,包含 ['year'] 和 ['month']
df['year'] = pd.DatetimeIndex(df['date']).year
df['month'] = pd.DatetimeIndex(df['date']).month
接下来选择数据:
df.loc[(df['year'] == year) & (df['month'] == month)].iloc[:,3]
不完全是我想要的(基于索引),但非常适合使用我编写的函数遍历数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.