gpt4 book ai didi

python - 从 Python 函数调用 `dt.` 类型

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:39 24 4
gpt4 key购买 nike

我在 pandas 中有时间戳,我希望能够编写一个函数来返回日期的不同部分。这是一个 MWE:

import pandas as pd
df = pd.DataFrame({'hit': pd.to_datetime(['2018-12-29 00:00:00', '2019-03-25 00:00:00'])})

这就是我希望能够做到的:

def test(timepart):
df['hit'].dt.timepart

所以我可以调用 test(month),该函数将返回 12, 03

最佳答案

使用 getattr 返回特定属性:

def test(df, timepart):
return getattr(df['hit'].dt, timepart)

test(df, 'month')
0 12
1 3
Name: hit, dtype: int64

strftime 的问题在于它在返回之前将结果转换为字符串。


如果你想尝尝dynamic life ,请尝试使用 DataFrame.eval

def test(df, timepart):
return df.eval(f"hit.dt.{timepart}", engine='python')

test(df, 'month')

0 12
1 3
Name: hit, dtype: int64

python 的 eval 很危险,谢天谢地有更安全的替代方法来做同样的事情。

关于python - 从 Python 函数调用 `dt.` 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56844655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com