我正在尝试获取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 :(“解析器必须是字符串或字符流,而不是Series”,“发生在索引0”)
感谢您提供的任何帮助。
答案 0 :(得分:1)
您可以在没有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
答案 1 :(得分:0)
只需将df['checkin']
更改为row['checkin']
如下
df['NewDate'] = df.apply(lambda row: datetime.date.strftime(parse(row['checkin']), "%m/%d/%Y"), axis = 1)