从日期时间范围创建熊猫数据框[重复]

Posted

技术标签:

【中文标题】从日期时间范围创建熊猫数据框[重复]【英文标题】:Create pandas dataframe from datetime range [duplicate] 【发布时间】:2021-12-29 21:37:38 【问题描述】:

我目前有一个数据,范围从 2020-11-03 到 2021-10-01。

我想创建一个新的数据框,其中行值等于日期。

澄清数据名的第一行是 2020-11-03,第二行是 2020-11-04,依此类推。

有没有办法创建一个新的数据框,其中行将是给定范围之间的每个日期?

我计划稍后映射其他值,所以我目前只需要一个只有一列的新数据框。

提前谢谢你!!

【问题讨论】:

Dereke 的回答很到位,但在这个问题上有很多骗局 - 请参阅链接的答案。 【参考方案1】:

Pandas 实现了 DatetimeIndex 类,您可以使用 pandas.date_range 函数对其进行实例化。

import pandas as pd
pd.date_range(start='2020-11-03', end='2021-10-01')
DatetimeIndex(['2020-11-03', '2020-11-04', '2020-11-05', '2020-11-06',
               '2020-11-07', '2020-11-08', '2020-11-09', '2020-11-10',
               '2020-11-11', '2020-11-12',
               ...
               '2021-09-22', '2021-09-23', '2021-09-24', '2021-09-25',
               '2021-09-26', '2021-09-27', '2021-09-28', '2021-09-29',
               '2021-09-30', '2021-10-01'],
              dtype='datetime64[ns]', length=333, freq='D')

如果您确实需要该范围内的 DataFrame,您可以从之前创建一个:

pd.DataFrame(pd.date_range(start='2020-11-03', end='2021-10-01'), columns=['dates'])

参考:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.date_range.html

【讨论】:

【参考方案2】:

您可以使用 pandas 函数 date_range(文档 here)并将所需的日期字符串传递给 startend 参数(默认频率为 1 天):

df = pd.DataFrame('date':pd.date_range(start='2020-11-03', end='2021-10-01'))

输出:

>>> df
          date
0   2020-11-03
1   2020-11-04
2   2020-11-05
3   2020-11-06
4   2020-11-07
..         ...
328 2021-09-27
329 2021-09-28
330 2021-09-29
331 2021-09-30
332 2021-10-01

[333 rows x 1 columns]

【讨论】:

以上是关于从日期时间范围创建熊猫数据框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

熊猫创建没有周末的日期范围

填补熊猫数据框中的日期空白

从熊猫的日期时间列中提取日期和小时[重复]

在熊猫中传播范围日期

如何从熊猫数据框列中选择日期间隔? [复制]

从熊猫数据框中的日期时间中删除时间戳