在Python中附加日期范围()
我有一个csv文件,包含开始日期和结束日期,格式为在Python中附加日期范围(),python,date,pandas,append,Python,Date,Pandas,Append,我有一个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) dataframe的示例如下所示: StartDate EndDate 0
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)
dataframe的示例如下所示:
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\u 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
请显示您如何生成数组的代码,您将数组附加到数组中,而不仅仅是将数组内容附加到数组中如果您试图将元素从一个列表添加到另一个列表中,您可能只想使用列表连接。这是一个很好的解决方案!正是我想要的那种简洁的代码!谢谢。不用担心,如果你不想要原始数据帧,你可以一步创建df