将时期转换为日期时间格式python - typeerror
我有一个数据帧与2列 - 一些值和时间。时间戳是时代格式,我试图使用python中的时间库中的strftime函数进行转换。将时期转换为日期时间格式python - typeerror
下面是一些样本数据
df = [{'A': 762, 'Time': 1512255906}, {'A': 810, 'Time': 1480719906}]
注:时间为纪元格式。在执行日期转换的strftime函数之前,我正在执行一些转换以确保其类型为numeric(float)。
下面的代码:
df['Time'] = pd.to_numeric(df['Time'], errors='coerce').fillna(0) df['Time'].dtype
我收到一个错误使用时,在这条线
df['Time'] = time.strftime("%d-%m", time.localtime(df['Time']))
回溯:
TypeError Traceback (most recent call last) <ipython-input-53-86f4db0b80e4> in <module>()
----> 1 df['Time'] = time.strftime("%d-%m", time.localtime(df['Time']))
TypeError: cannot convert the series to <class 'int'>
回答:
您可以使用pandas.DataFrame.apply
:
>>> import pandas as pd >>> import time
>>> df = pd.DataFrame([{'A': 762, 'Time': 1512255906},
{'A': 810, 'Time': 1480719906}])
>>> df['Time'] = pd.to_numeric(df['Time'], errors='coerce').fillna(0)
>>> df['Time'] = df['Time'].apply(lambda t: time.strftime("%d-%m", time.localtime(t)))
>>> df
A Time
0 762 03-12
1 810 03-12
回答:
您可以传递unit
参数pd.to_datetime
以了解该数字代表的时间单位。在这种情况下,你从Time
开始是从时代开始的秒数。所以我们通过's'
作为unit
。
df.assign(Time=pd.to_datetime(df.Time, unit='s').dt.strftime('%d-%m')) # For in place, use:
# df.Time = pd.to_datetime(df.Time, unit='s').dt.strftime('%d-%m')
A Time
0 762 02-12
1 810 02-12
以上是 将时期转换为日期时间格式python - typeerror 的全部内容, 来源链接: utcz.com/qa/258750.html