Chi*_*thy 0 python datetime pandas
我有一个以日期时间为索引的数据框。如何从索引中提取年份和月份?下面是我的数据框。
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
Run Code Online (Sandbox Code Playgroud)
显然df["index"].dt.month或df["date"].dt.month不起作用。
使用DatetimeIndex.year和DatetimeIndex.month,dt用于选择列:
print (df.index)
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 = pd.to_datetime(df.index)
y = df.index.year
m = df.index.month
print (y)
Int64Index([2019, 2019], dtype='int64', name='date')
print (m)
Int64Index([1, 1], dtype='int64', name='date')
Run Code Online (Sandbox Code Playgroud)
您可以采用以下示例,但是您可以从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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8094 次 |
| 最近记录: |