我有一个以日期时间为索引的数据框。如何从索引中提取年份和月份?下面是我的数据框。
1. open 2. high 3. low 4. close 5. volume
date
2019-01-07 101.64 103.2681 100.9800 102.06 35656136.0
2019-01-08 103.04 103.9700 101.7134 102.80 31294058.0
显然 df["index"].dt.month
或 df["date"].dt.month
不起作用。
最佳答案
您可以使用下面的示例,但是您可以从Docs pandas.DatetimeIndex中获得详细用法
示例数据框:
>>> df
name age favorite_color grade birth_date
Willard Morris Willard Morris 20 blue 88 01-02-1996
Al Jennings Al Jennings 19 red 92 08-05-1997
Omar Mullins Omar Mullins 22 yellow 95 04-28-1996
Spencer McDaniel Spencer McDaniel 21 green 70 12-16-1995
1) 提取年份:
>>> df['year'] = pd.DatetimeIndex(df['birth_date']).year
>>> df.head()
name age favorite_color grade birth_date year
Willard Morris Willard Morris 20 blue 88 01-02-1996 1996
Al Jennings Al Jennings 19 red 92 08-05-1997 1997
Omar Mullins Omar Mullins 22 yellow 95 04-28-1996 1996
Spencer McDaniel Spencer McDaniel 21 green 70 12-16-1995 1995
2) 提取月份:
>>> df['month'] = pd.DatetimeIndex(df['birth_date']).month
>>> df.head()
name age favorite_color grade birth_date year month
Willard Morris Willard Morris 20 blue 88 01-02-1996 1996 1
Al Jennings Al Jennings 19 red 92 08-05-1997 1997 8
Omar Mullins Omar Mullins 22 yellow 95 04-28-1996 1996 4
Spencer McDaniel Spencer McDaniel 21 green 70 12-16-1995 1995 12
3)提取year_with_month:
>>> df['month_year'] = pd.to_datetime(df['birth_date']).dt.to_period('M')
>>> df
name age favorite_color grade birth_date year month month_year
Willard Morris Willard Morris 20 blue 88 01-02-1996 1996 1 1996-01
Al Jennings Al Jennings 19 red 92 08-05-1997 1997 8 1997-08
Omar Mullins Omar Mullins 22 yellow 95 04-28-1996 1996 4 1996-04
Spencer McDaniel Spencer McDaniel 21 green 70 12-16-1995 1995 12 1995-12
https://stackoverflow.com/questions/54110673/