python - 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')
谢谢你的尽心帮助。
解决方案
你可以这样做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
推荐阅读
- umbraco - Umbraco 8 - 如何使用 ClientDependency 渲染两个不同的 JS 包 - RenderJsHere()
- python - 为什么在使用 `PIL.ImageFont` 打开 TTF 时出现“`OSError: unknown file format`”?
- php - 亚马逊 v2 上的签名无效
- javascript - 国家按用户选择过滤
- html - 如何访问祖父母 CSS 的背景
- javascript - 向控制器发出请求 - ASP.NET Core
- php - 如何防止多维数组php中的重复值
- oracle - 需要 Oracle 自定义排序
- azure - Azure 数据工厂连接到 OpenVPN
- javascript - 使用数据表 C# MVC 页面加载速度变慢