如何循环通过pandas的loc []函数,以便给定一个很长的系列,我可以把它分成多个小的。我想象的东西就像 我在范围内(1,10): df.loc [ '2002-I-01:' 2002-第(i + 1)-01' ]
其中i代表月数。
答案 0 :(得分:0)
考虑数据框df
df = pd.DataFrame(dict(A=range(100)), pd.date_range('2010-03-31', periods=100))
观察您要求从一个月的开始到下一个月的开始。典型的python切片不包括终点(虽然loc
确实如此)。我假设你打算把它排除在外,因为这样可以很方便。
使用频率为resample
'M'
df.resample('M').sum()
A
2010-03-31 0
2010-04-30 465
2010-05-31 1426
2010-06-30 2295
2010-07-31 764
您可以遍历每个月
for m, grp in df.groupby(pd.TimeGrouper('M')):
# do stuff
print(m)
2010-03-31 00:00:00
2010-04-30 00:00:00
2010-05-31 00:00:00
2010-06-30 00:00:00
2010-07-31 00:00:00