熊猫数据框中两个给定日期之间的日期列表

时间:2020-10-23 09:03:38

标签: python-3.x dataframe date

我有一个带有两个日期列X和Y的数据框。我想要这两列之间的日期列表。 我尝试了pd.date_range。但它不起作用。 我该如何实现?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用上述的pd.date_range来检索日期范围,如下所示:

import pandas as pd
from datetime import date, timedelta

start_date, end_date = date(2020, 9, 15), date(2020, 11 , 1)

date_range = pd.date_range(start_date, end_date - timedelta(days = 1), freq='d')

哪个给出输出:

DatetimeIndex(['2020-09-15', '2020-09-16', '2020-09-17', '2020-09-18',
               '2020-09-19', '2020-09-20', '2020-09-21', '2020-09-22',
               '2020-09-23', '2020-09-24', '2020-09-25', '2020-09-26',
               '2020-09-27', '2020-09-28', '2020-09-29', '2020-09-30',
               '2020-10-01', '2020-10-02', '2020-10-03', '2020-10-04',
               '2020-10-05', '2020-10-06', '2020-10-07', '2020-10-08',
               '2020-10-09', '2020-10-10', '2020-10-11', '2020-10-12',
               '2020-10-13', '2020-10-14', '2020-10-15', '2020-10-16',
               '2020-10-17', '2020-10-18', '2020-10-19', '2020-10-20',
               '2020-10-21', '2020-10-22', '2020-10-23', '2020-10-24',
               '2020-10-25', '2020-10-26', '2020-10-27', '2020-10-28',
               '2020-10-29', '2020-10-30', '2020-10-31'],
              dtype='datetime64[ns]', freq='D')

您可以使用isin()检查日期是否在给定范围内:

date_range.isin(['2020-10-29']).any()

可以将其转换为字符串:

date_range1 = [str(d.date()) for d in date_range]

哪个给出输出:

['2020-09-15', '2020-09-16', '2020-09-17', '2020-09-18', '2020-09-19', '2020-09-20', '2020-09-21', '2020-09-22', '2020-09-23', '2020-09-24', '2020-09-25', '2020-09-26', '2020-09-27', '2020-09-28', '2020-09-29', '2020-09-30', '2020-10-01', '2020-10-02', '2020-10-03', '2020-10-04', '2020-10-05', '2020-10-06', '2020-10-07', '2020-10-08', '2020-10-09', '2020-10-10', '2020-10-11', '2020-10-12', '2020-10-13', '2020-10-14', '2020-10-15', '2020-10-16', '2020-10-17', '2020-10-18', '2020-10-19', '2020-10-20', '2020-10-21', '2020-10-22', '2020-10-23', '2020-10-24', '2020-10-25', '2020-10-26', '2020-10-27', '2020-10-28', '2020-10-29', '2020-10-30', '2020-10-31']