如何在Python中将年-月-日转换为年?

发布于 2025-01-20 22:41:50 字数 275 浏览 1 评论 0原文

因此,我将此列在一个数据框架中,该列具有以下形状的4896行数据:

    2018-10-24
    2014-04-10
    2008-05-21
    ...

我想将这些数据仅转换或将这些数据转换为几年(如2018.15) - >将日常和月份转换为Y​​EAR时间,只有几年!

我该怎么办? 太感谢了!!

In: 2018-10-24
Out: 2018.56 (for example)

So I have this column in a dataframe that has 4896 rows of datatimes in this shape:

    2018-10-24
    2014-04-10
    2008-05-21
    ...

And I would like to transform or convert this data to years only (like 2018.15) -> convert the day and month to year time and have only the years!

How can I do so??
Thank you so much!!

In: 2018-10-24
Out: 2018.56 (for example)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

太傻旳人生 2025-01-27 22:41:50

仅使用基本 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

Using just base Python (as you didn't specify that you have a pandas dataframe - pandas has specific functions to perform calculations with datetime objects):

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"))

Sample output:

2018.8131868131868
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文