簡體   English   中英

在Python中附加date_range()

[英]Append with date_range() in 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)

數據框的示例如下所示:

    StartDate   EndDate
0   2015-07-15  2015-07-18
1   2015-06-06  2015-06-08

我想在新數據框中的列中獲取這些間隔中列出的所有日期:

    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 ]

該怎么辦?

您可以使用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",))

輸出:

        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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM