Python 从小时值系列到日期系列
我有一个涵盖1979年1月的时间序列,有6个小时的时间增量。时间格式为连续小时范围:Python 从小时值系列到日期系列,python,pandas,date,Python,Pandas,Date,我有一个涵盖1979年1月的时间序列,有6个小时的时间增量。时间格式为连续小时范围: 1 7 13 18 25 31 . . . 739 是否可以将这些整数转换为日期?例如: 1979/01/01 - 1:00 1979/01/01 - 7:00 1979/01/01 - 13:00 1979/01/01 - 18:00 1979/01/02 - 1:00 非常感谢你 设置 使用带有标记的pd.to\u datetime,并将
1
7
13
18
25
31
.
.
.
739
是否可以将这些整数转换为日期?例如:
1979/01/01 - 1:00
1979/01/01 - 7:00
1979/01/01 - 13:00
1979/01/01 - 18:00
1979/01/02 - 1:00
非常感谢你 设置
使用带有
标记的pd.to\u datetime
,并将
标记设置为所需年份的开始
pd.to_datetime(df.hour, unit='h', origin='1979-01-01')
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
3 1979-01-01 18:00:00
4 1979-01-02 01:00:00
5 1979-01-02 07:00:00
Name: hour, dtype: datetime64[ns]
设置
使用带有
标记的pd.to\u datetime
,并将
标记设置为所需年份的开始
pd.to_datetime(df.hour, unit='h', origin='1979-01-01')
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
3 1979-01-01 18:00:00
4 1979-01-02 01:00:00
5 1979-01-02 07:00:00
Name: hour, dtype: datetime64[ns]
还有一种方法:
import pandas as pd
s = pd.Series([1,7,13])
s = pd.to_datetime(s*1e9*60*60+ pd.Timestamp(1979,1,1).value)
print(s)
返回:
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
dtype: datetime64[ns]
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
3 1979-01-01 18:00:00
4 1979-01-02 01:00:00
dtype: datetime64[ns]
还有一种方法:
import pandas as pd
s = pd.Series([1,7,13])
s = pd.to_datetime(s*1e9*60*60+ pd.Timestamp(1979,1,1).value)
print(s)
返回:
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
dtype: datetime64[ns]
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
3 1979-01-01 18:00:00
4 1979-01-02 01:00:00
dtype: datetime64[ns]
也可以这样做:
from datetime import datetime, timedelta
s = pd.Series([1,7,13,18,25])
s = s.apply(lambda h: datetime(1979, 1, 1) + timedelta(hours=h))
print(s)
返回:
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
dtype: datetime64[ns]
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
3 1979-01-01 18:00:00
4 1979-01-02 01:00:00
dtype: datetime64[ns]
也可以这样做:
from datetime import datetime, timedelta
s = pd.Series([1,7,13,18,25])
s = s.apply(lambda h: datetime(1979, 1, 1) + timedelta(hours=h))
print(s)
返回:
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
dtype: datetime64[ns]
0 1979-01-01 01:00:00
1 1979-01-01 07:00:00
2 1979-01-01 13:00:00
3 1979-01-01 18:00:00
4 1979-01-02 01:00:00
dtype: datetime64[ns]
我们如何推断年份?它只是一个常数吗?是的,它是君士坦丁堡我们怎么推断年份?它只是一个常数吗?是的,它是常数。我没有想到答案。使用to_datetime的参数是干净的+我没有想到答案。使用to_datetime的参数是干净的+1.