从日期时间范围创建熊猫数据框[重复]
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)并将所需的日期字符串传递给 start
和 end
参数(默认频率为 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]
【讨论】:
以上是关于从日期时间范围创建熊猫数据框[重复]的主要内容,如果未能解决你的问题,请参考以下文章