我有一个带有日期列的数据框。持续时间为 365 天,从 02/11/2017 开始,到 01/11/2018 结束。
Date
02/11/2017
03/11/2017
05/11/2017
.
.
01/11/2018
我想添加一个名为 Day_Of_Year 的相邻列,如下所示:
Date Day_Of_Year
02/11/2017 1
03/11/2017 2
05/11/2017 4
.
.
01/11/2018 365
如果这是一个非常基本的问题,我深表歉意,但不幸的是我无法从这个开始。
我可以使用 datetime(),但它会返回诸如 1 表示 1 月 1 日、2 表示 1 月 2 日等的值……与年份无关。所以,这对我不起作用。
最佳答案
首先转换列 to_datetime
然后减去datetime
,转换为days
并添加 1
:
df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y')
df['Day_Of_Year'] = df['Date'].sub(pd.Timestamp('2017-11-02')).dt.days + 1
print (df)
Date Day_Of_Year
0 02/11/2017 1
1 03/11/2017 2
2 05/11/2017 4
3 01/11/2018 365
或者减去列的第一个值:
df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y')
df['Day_Of_Year'] = df['Date'].sub(df['Date'].iat[0]).dt.days + 1
print (df)
Date Day_Of_Year
0 2017-11-02 1
1 2017-11-03 2
2 2017-11-05 4
3 2018-11-01 365
关于python-3.x - 从特定日期开始的年度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53595993/