在带有pandas数据帧的范围循环中使用loc []表示i。

时间:2017-05-01 23:19:29

标签: python pandas

如何循环通过pandas的loc []函数,以便给定一个很长的系列,我可以把它分成多个小的。我想象的东西就像 我在范围内(1,10):    df.loc [ '2002-I-01:' 2002-第(i + 1)-01' ]

其中i代表月数。

1 个答案:

答案 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