python - 从 datetime64[ns, UTC] 中提取年月日,Python
问题描述
我在 df 中有这个专栏:
> df["time"]
0 2007-02-01 22:00:00+00:00
1 2007-02-01 22:00:00+00:00
2 2007-02-01 22:00:00+00:00
3 2007-02-01 22:00:00+00:00
4 2007-02-01 22:00:00+00:00
我想创建三个包含日、月和年的新列,但我想不出一种方法来提取time column
.
解决方案
为了不修改现有time
列,请使用pd.to_datetime
然后使用dt
访问器创建一个单独的日期时间序列:
# obtain datetime series:
datetimes = pd.to_datetime(df['time'])
# assign your new columns
df['day'] = datetimes.dt.day
df['month'] = datetimes.dt.month
df['year'] = datetimes.dt.year
>>> df
time day month year
0 2007-02-01 22:00:00+00:00 1 2 2007
1 2007-02-01 22:00:00+00:00 1 2 2007
2 2007-02-01 22:00:00+00:00 1 2 2007
3 2007-02-01 22:00:00+00:00 1 2 2007
4 2007-02-01 22:00:00+00:00 1 2 2007
另一种方法是str.split('-')
在datetime.dt.date
系列上使用:
datetimes = pd.to_datetime(df['time'])
df[['year','month','day']] = datetimes.dt.date.astype(str).str.split('-',expand=True)
>>> df
time year month day
0 2007-02-01 22:00:00+00:00 2007 02 01
1 2007-02-01 22:00:00+00:00 2007 02 01
2 2007-02-01 22:00:00+00:00 2007 02 01
3 2007-02-01 22:00:00+00:00 2007 02 01
4 2007-02-01 22:00:00+00:00 2007 02 01
推荐阅读
- html - 文字在错误的地方
- javascript - 如何在 httpOnly cookie 中使用 JWT 令牌来调用受限 API 端点
- c - 在 C 中处理 void 指针
- javascript - django中的代码可以被javascript读取吗?
- sql-server - 需要子查询中两列的总和
- c# - 在 .NET 应用程序中,如何为这种 SQL 关系建模?
- python - 我正在尝试让我的注册站点运行,但在终端中出现错误
- x86-64 - 在具有 dwarf 调试格式的 NASM 中使用 %line 指令不会产生预期的行号
- python-3.x - 如何使用 chrome 浏览器在 jenkins 或 circleci 中实现 python 的行为 bdd 用于网站的 qa
- r - 如何使用 R 清理数据框中混乱的日期格式