gpt4 book ai didi

Python:从时间戳到日期时间

转载 作者:太空宇宙 更新时间:2023-11-03 15:46:50 25 4
gpt4 key购买 nike

我有以下数据框:

df = pd.DataFrame({'user': ['Andrea', 'Gioele'],
'year': [1983, 2014],
'month': [11, 1],
'day': [8, 11]} )

然后我用两种方式为每一行创建日期。第一:

df['dateA'] = df.apply(lambda x: datetime.date(x['year'],x['month'],x['day']), axis=1)

第二:

df['dateB'] = pd.to_datetime(df[['year','month','day']])

我有以下数据框:

>>> df
10: day month user year dateA dateB
0 8 11 Andrea 1983 1983-11-08 1983-11-08
1 11 1 Gioele 2014 2014-01-11 2014-01-11

我有两种不同的格式:

>>> df['dateA']
1983-11-08
2014-01-11
Name: dateA, dtype: object
>>> df['dateB']
1983-11-08
2014-01-11
Name: dateB, dtype: datetime64[ns]

此外:

>>> df['dateA'].iloc[0]
datetime.date(1983, 11, 8)
>>> df['dateB'].iloc[0]
Timestamp('1983-11-08 00:00:00')

问题是用第一种方法计算日期是相当昂贵的,所以我想转换 df['dateB']这样它的格式就是“对象”。有办法吗?

注意:我已经尝试过可能的“重复问题”建议的内容(它们总是字符串,而不是时间戳),但我获得了以下内容

>>> datetime.datetime.fromtimestamp(df['dateB'].iloc[0])
Traceback (most recent call last):
File "<pyshell#68>", line 1, in <module>
datetime.datetime.fromtimestamp(df['dateB'].iloc[0])
TypeError: a float is required

最佳答案

我认为你可以使用dt.date :

df['dateB'] = pd.to_datetime(df[['year','month','day']]).dt.date

print (df['dateB'].dtype)
object

print (type(df['dateB'].iloc[0]))
<class 'datetime.date'>

关于Python:从时间戳到日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41679138/

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