python 如何将年-月-日转换为年?
How to convert year-month-day to just years in python?
所以我在一个数据框中有这个列,它有 4896 行数据时间,形状如下:
2018-10-24
2014-04-10
2008-05-21
...
而且我想将此数据转换或转换为仅年(如 2018.15)-> 将日和月转换为年时间并且只有年!
我该怎么做??
非常感谢!!
In: 2018-10-24
Out: 2018.56 (for example)
仅使用基础 Python(因为您没有指定您有一个 pandas 数据框 - pandas 具有使用日期时间对象执行计算的特定函数):
from datetime import datetime
#takes as arguments the date as a string and an optional format string
def floatyear(str, fmtstr="%Y-%m-%d"):
t = datetime.strptime(str, fmtstr)
t_first = datetime(t.year, 1, 1, 0, 0, 0)
t_last = datetime(t.year, 12, 31, 0, 0, 0)
return t.year + ((t-t_first).days/(t_last-t_first).days)
print(floatyear("2018-10-24", "%Y-%m-%d"))
示例输出:
2018.8131868131868
所以我在一个数据框中有这个列,它有 4896 行数据时间,形状如下:
2018-10-24
2014-04-10
2008-05-21
...
而且我想将此数据转换或转换为仅年(如 2018.15)-> 将日和月转换为年时间并且只有年!
我该怎么做?? 非常感谢!!
In: 2018-10-24
Out: 2018.56 (for example)
仅使用基础 Python(因为您没有指定您有一个 pandas 数据框 - pandas 具有使用日期时间对象执行计算的特定函数):
from datetime import datetime
#takes as arguments the date as a string and an optional format string
def floatyear(str, fmtstr="%Y-%m-%d"):
t = datetime.strptime(str, fmtstr)
t_first = datetime(t.year, 1, 1, 0, 0, 0)
t_last = datetime(t.year, 12, 31, 0, 0, 0)
return t.year + ((t-t_first).days/(t_last-t_first).days)
print(floatyear("2018-10-24", "%Y-%m-%d"))
示例输出:
2018.8131868131868