我有一个具有以下结构的 Pandas Dataframe:
title zeiten
0 Anker der Liebe ['2020-02-17T19:15:00+01:00']
1 DarkroomTödliche Tropfen ['2020-02-17T21:45:00+01:00']
2 Das geheime Leben der Bäume,['2020-02-13T16:45:00+01:00', '2020-02-14T16:45:00+01:00', '2020-02-15T16:45:00+01:00', '2020-02-16T16:45:00+01:00', '2020-02-17T16:45:00+01:00', '2020-02-18T16:45:00+01:00', '2020-02-19T16:45:00+01:00']
...
我想将“zeiten”列转换为日期时间,所以我尝试:
df['zeiten'] = df['zeiten'].apply(lambda x: pd.to_datetime(x)[0])
这适用于第 0 行和第 1 行,但不适用于第 2 行,因为仅转换列表的第一个日期,因此输出如下所示:
title zeiten
0 Anker der Liebe 2020-02-17 19:15:00+01:00
1 DarkroomTödliche Tropfen 2020-02-17 21:45:00+01:00
2 Das geheime Leben der Bäume 2020-02-13 16:45:00+01:00
有没有办法将列中的整个列表转换为日期时间?
最佳答案
不仅首先转换所有值,因此删除了 [0]
,并且如有必要,还将每个值的 DatetimeIndex 转换为 list
:
df['zeiten'] = df['zeiten'].apply(lambda x: pd.to_datetime(x))
print (df)
title \
0 Anker der Liebe
1 DarkroomTodliche Tropfen
2 Das geheime Leben der Baume,
zeiten
0 DatetimeIndex(['2020-02-17 19:15:00+01:00'], d...
1 DatetimeIndex(['2020-02-17 21:45:00+01:00'], d...
2 DatetimeIndex(['2020-02-13 16:45:00+01:00', '2...
<小时/>
df['zeiten'] = df['zeiten'].apply(lambda x: pd.to_datetime(x).tolist())
print (df)
title \
0 Anker der Liebe
1 DarkroomTodliche Tropfen
2 Das geheime Leben der Baume,
zeiten
0 [2020-02-17 19:15:00+01:00]
1 [2020-02-17 21:45:00+01:00]
2 [2020-02-13 16:45:00+01:00, 2020-02-14 16:45:0...
关于Python/ Pandas /日期时间 : transform entire lists in a column to datetime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60207821/