Chr*_*ris 1 python time datetime pandas datetime64
我在 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
Run Code Online (Sandbox Code Playgroud)
我想用日、月和年创建三个新列,但我无法找到一种方法来提取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
Run Code Online (Sandbox Code Playgroud)
另一种方法是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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2902 次 |
| 最近记录: |