首页 > 解决方案 > Pandas - 基于解析其他日期列添加新日期列

问题描述

我正在尝试获取一个 Pandas 数据框,解析一个表示日期的列,并使用简单的 mm/dd/yyyy 格式向数据框添加一个新列。

这是数据和库:

import pandas as pd
import datetime
from dateutil.parser import parse

df = pd.DataFrame([['row1', 'Tue Jun 16 19:05:44 UTC 2020', 'record1'], ['row2', 'Tue Jun 16 17:10:02 UTC 2020', 'record2'], ['row3', 'Fri Jun 12 17:52:37 UTC 2020', 'record3']], columns=["row", "checkin", "record"])

从这里挑选一些零碎的东西,我精心制作了这一行来解析和添加新的数据列:

df['NewDate'] = df.apply(lambda row: datetime.date.strftime(parse(df['checkin']), "%m/%d/%Y"), axis = 1)

但是我在运行时最终遇到了这个错误,任何人都可以提出一个修复或更简单的方法来做到这一点,似乎它应该比我发现的更简单和更pythonic

TypeError: ('Parser 必须是字符串或字符流,不是 Series', '发生在索引 0')

谢谢你的尽心帮助。

标签: pythonpandasdatetimeparsing

解决方案


你可以这样做apply

df['newDate'] = pd.to_datetime(df.checkin).dt.strftime("%m/%d/%Y")

    row                       checkin   record     newDate
0  row1  Tue Jun 16 19:05:44 UTC 2020  record1  06/16/2020
1  row2  Tue Jun 16 17:10:02 UTC 2020  record2  06/16/2020
2  row3  Fri Jun 12 17:52:37 UTC 2020  record3  06/12/2020

推荐阅读