python - 在 Python 中使用 date_range() 追加

标签 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)

数据框的示例如下所示:

    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),每次都 append 结果,但我得到的要么是一个空数组,要么是类似的东西

[[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

关于python - 在 Python 中使用 date_range() 追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32137320/

相关文章:

sql - 如何找出 postgresql 中两个参数之间的值?

python - 如何计算有多少项出现一次、两次、三次……?

python - 将 python 中的两个 pandas 数据框与公共(public)列和字符串条件合并

python - Flask 和 SQLalchemy NoForeignKeysError : Could not determine join condition between parent/child tables on relationship User. 帖子

python - 如何在独立 Spark 集群 (pySpark) 中使用 FTP 上的文件?

java - 如何获取两个日期之间的月份和年份列表

java - 这段代码的目的是什么?它只是复制一个日期吗?

python - 应用 `Pandas.Timedelta.total_seconds` 时的奇怪行为

python - python 查找具有相似列的两个表之间缺失的数据

python - python在哪里保存最后一次操作的结果?