我有一个 pandas.DataFrame ,如下所示:
周 | 星期一 | 星期二 | 周三 | 星期四 | 周五 |
---|---|---|---|---|---|
A市 | 100 | 300 | x | z | w |
B市 | 200 | 400 | y | q | p |
无 | 无 | 无 | 无 | 无 | 无 |
周 | 星期一 | 星期二 | 周三 | 星期四 | 周五 |
A市 | 150 | 320 | a | c | e |
B市 | 210 | 470 | z | t | q |
C市 | 260 | 446 | b | d | f |
无 | 无 | 无 | 无 | 无 | 无 |
重复此操作,直到覆盖一年中的所有周(它基本上是包含数据的周历)。
我希望以块的形式循环遍历 DataFrame,并对这些块中的数据执行一些操作。
如果有意义的话,这些块应该基本上是“每周”高和“每周到周五”宽。但是,正如您所看到的,块的大小并不相同,因此我无法将大小硬编码为 4x6。不过,他们总是从“周”到“周”,一直向右到“星期五”。
有什么直观的方法可以迭代我的 DataFrame 吗?如有任何帮助,我们将不胜感激。
你可以尝试:
df['week_index'] = df.isna().all(axis='columns').astype(int).cumsum()
for _, df_chunk in df.grouprby('week_index'):
# do something