【发布时间】:2018-04-25 14:53:34
【问题描述】:
我有一个数据框df,看起来像这样,没有设置索引:
df.head()
year month inch mm
0 1981 2 0.00 0.000
1 1981 3 4.82 122.428
2 1981 4 6.45 163.830
3 1981 5 5.03 127.762
4 1981 6 1.25 31.750
(1) 首先,我只想选择 1987 年到 2017 年之间的年份。
(2) 然后我想按年份分组选择月份:MAM(所以 3-5)、JJAS(6-9)和 OND(10-12),并对这些月份的 mm 列求和。
结果可能如下所示:
year season mm
1981 MAM 360
1981 JJAS 167
...
我不确定如何执行第 1 部分,但我知道对于第 2 部分,我需要将 month 列转换为日期时间对象。
然后我会通过以下方式定义兴趣月份:
MAM = df.iloc[df.index.month.isin(np.r_[3:6])]
JJAS = df.iloc[df.index.month.isin(np.r_[6:10])]
OND = df.iloc[df.index.month.isin(np.r_[10:13])]
但现在我收到错误AttributeError: 'RangeIndex' object has no attribute 'month'。
提前致谢!
【问题讨论】:
标签: python pandas dataframe group-by