在Python中用date_range()附加

2024-05-16 23:57:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,包含开始日期和结束日期,格式为dd/mm/yy。 阅读人:

dateparse = lambda x: pnd.datetime.strptime(x, '%d/%m/%y')
df = pnd.read_csv('file.csv',sep=';',parse_dates=['StartDate','EndDate'], date_parser=dateparse)

数据帧的示例如下所示:

^{pr2}$

我想在一个新的数据帧的列中获取这些时间间隔中列出的所有日期:

    Date
0   2015-07-15
1   2015-07-16
2   2015-07-17
3   2015-07-18
4   2015-06-06  
5   2015-06-07  
6   2015-06-08

我迭代地使用date_range(StartDate, EndDate),每次都追加结果,但得到的要么是空数组,要么是类似的

[[2015-07-15, 2015-07-16, 2015-07-17, 2015-07-18], [ 2015-06-06, 2015-06-07 , 2015-06-08 ]]

我想

[ 2015-07-15, 2015-07-16, 2015-07-17, 2015-07-18, 2015-06-06, 2015-06-07 , 2015-06-08 ]

怎么办?在


Tags: 文件csv数据lambdadatetimedate格式dd
1条回答
网友
1楼 · 发布于 2024-05-16 23:57:38

您可以使用itertools.chain将范围链接在一起,以创建日期列表:

from itertools import chain
new_df = pnd.DataFrame(list(chain.from_iterable(pnd.date_range(r["StartDate"],r["EndDate"]) 
         for _,r in df.iterrows())), columns=("Date",))

输出:

^{pr2}$

相关问题 更多 >