将时期转换为日期时间格式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

回到顶部