有没有办法用两个日期之间的每小时日期时间有效地填充 python 中的 pandas df 列?
is there a way to efficiently fill a pandas df column in python with hourly datetimes between two dates?
所以我正在寻找一种方法来用两个日期之间的每小时值填充一个空的数据框列。
例如在
之间
StartDate = 2019:01:01 00:00:00
至
EndDate = 2019:02:01 00:00:00
我想要一个包含
的专栏
2019:01:01 00:00:00,2019:01:01 01:00:00,2019:02:01 00:00:00...
Y:M:D H:M:S 格式。
我不确定这样做最有效的方法是什么,有没有办法通过 pandas 来做到这一点,或者您是否必须在给定的 timedelta 范围内使用 for 循环,例如?
`
将 date_range
与 DataFrame
构造函数一起使用:
StartDate = '2019-01-01 00:00:00'
EndDate = '2019-02-01 00:00:00'
df = pd.DataFrame({'dates':pd.date_range(StartDate, EndDate, freq='H')})
如果有自定义格式的日期,首先将它们转换为日期时间:
StartDate = '2019:01:01 00:00:00'
EndDate = '2019:02:01 00:00:00'
StartDate = pd.to_datetime(StartDate, format='%Y:%m:%d %H:%M:%S')
EndDate = pd.to_datetime(EndDate, format='%Y:%m:%d %H:%M:%S')
df = pd.DataFrame({'dates':pd.date_range(StartDate, EndDate, freq='H')})
print (df.head(10))
dates
0 2019-01-01 00:00:00
1 2019-01-01 01:00:00
2 2019-01-01 02:00:00
3 2019-01-01 03:00:00
4 2019-01-01 04:00:00
5 2019-01-01 05:00:00
6 2019-01-01 06:00:00
7 2019-01-01 07:00:00
8 2019-01-01 08:00:00
9 2019-01-01 09:00:00
所以我正在寻找一种方法来用两个日期之间的每小时值填充一个空的数据框列。 例如在
之间StartDate = 2019:01:01 00:00:00
至
EndDate = 2019:02:01 00:00:00
我想要一个包含
的专栏2019:01:01 00:00:00,2019:01:01 01:00:00,2019:02:01 00:00:00...
Y:M:D H:M:S 格式。 我不确定这样做最有效的方法是什么,有没有办法通过 pandas 来做到这一点,或者您是否必须在给定的 timedelta 范围内使用 for 循环,例如?
`
将 date_range
与 DataFrame
构造函数一起使用:
StartDate = '2019-01-01 00:00:00'
EndDate = '2019-02-01 00:00:00'
df = pd.DataFrame({'dates':pd.date_range(StartDate, EndDate, freq='H')})
如果有自定义格式的日期,首先将它们转换为日期时间:
StartDate = '2019:01:01 00:00:00'
EndDate = '2019:02:01 00:00:00'
StartDate = pd.to_datetime(StartDate, format='%Y:%m:%d %H:%M:%S')
EndDate = pd.to_datetime(EndDate, format='%Y:%m:%d %H:%M:%S')
df = pd.DataFrame({'dates':pd.date_range(StartDate, EndDate, freq='H')})
print (df.head(10))
dates
0 2019-01-01 00:00:00
1 2019-01-01 01:00:00
2 2019-01-01 02:00:00
3 2019-01-01 03:00:00
4 2019-01-01 04:00:00
5 2019-01-01 05:00:00
6 2019-01-01 06:00:00
7 2019-01-01 07:00:00
8 2019-01-01 08:00:00
9 2019-01-01 09:00:00