【发布时间】:2018-05-22 19:24:17
【问题描述】:
import pandas as pd
mydate = ["01/01/2018","19/01/2018","24/01/2018" ,
"27/01/2018","29/01/2018","30/01/2018" ,
"22/02/2018","23/03/2018"]
mydate = pd.to_datetime(mydate)
events = ["a" , "b" , "c" , "d" , "e" , "f" ,"g" , "h"]
df = pd.DataFrame({"date" :mydate,"events" :events})
df
date events
0 2018-01-01 a
1 2018-01-19 b
2 2018-01-24 c
3 2018-01-27 d
4 2018-01-29 e
5 2018-01-30 f
6 2018-02-22 g
7 2018-03-23 h
我想每 20 天对数据进行切片并将它们存储在单独的数据框中。我查看了 group-by 、 date_range 和其他功能,但找不到我的问题的解决方案。我可以使用典型的 for 循环来做到这一点,但我希望使用一些 pandas 功能。
Expected result
df = [df1 , df2 , df3 , df4]
where df1 contain row 0 ,1
df2 contains row 2,3,4,5
df3 contain row 6
df4 contain row 7
【问题讨论】:
-
你为什么反对使用 python 循环?我不确定,但我觉得这是唯一的方法,应该是亚秒级的时间,除非您正在解析大量数据帧。
-
我有一个庞大的数据框。如果内存和时间效率高,请随意建议循环解决方案
标签: python pandas time-series