How to split a date column into separate day , month ,year column in pandas(如何在 pandas 中将日期列拆分为单独的日、月、年列)
本文介绍了如何在 pandas 中将日期列拆分为单独的日、月、年列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据集df
:
Dewptm Fog Humidity Pressurem Tempm Wspdm Rainfall
datetime_utc
1996-11-01 11.666667 0.0 52.916667 -2659.666667 22.333333 2.466667 0
1996-11-02 10.458333 0.0 48.625000 1009.833333 22.916667 8.028571 0
1996-11-03 12.041667 0.0 55.958333 1010.500000 21.791667 4.804545 0
1996-11-04 10.222222 0.0 48.055556 1011.333333 22.722222 1.964706 0
...
这里是df.columns
:
Index(['Dewptm', 'Fog', 'Humidity', 'Pressurem', 'Rain', 'Tempm', 'Wspdm',
'Rainfall'],
dtype='object')
如何将datetime_utc
列拆分为年、月、日列?
我已尝试:
df["day"] = df['datetime_utc'].map(lambda x: x.day)
df["month"] = df['datetime_utc'].map(lambda x: x.month)
df["year"] = df['datetime_utc'].map(lambda x: x.year)
错误:
KeyError:‘DateTime_UTC’
也
pd.concat([df.drop('datetime_utc', axis = 1),
(df.datetime_utc.str.split("-).str[:3].apply(pd.Series)
.rename(columns={0:'year', 1:'month', 2:'day'}))], axis = 1)
我收到错误:
轴中找不到KeyError:";[‘DateTime_UTC’]
我面临的问题是列datetime_utc
是我的数据集中的默认索引列,请给我建议一种方法。
推荐答案
问题在于datetime_utc
在您的索引中而不是列中,因此您必须访问索引才能创建新列:
df['day'] = df.index.day
df['month'] = df.index.month
df['year'] = df.index.year
print(df)
Dewptm Fog Humidity Pressurem Tempm Wspdm
datetime_utc
1996-11-01 11.666667 0.0 52.916667 -2659.666667 22.333333 2.466667
1996-11-02 10.458333 0.0 48.625000 1009.833333 22.916667 8.028571
1996-11-03 12.041667 0.0 55.958333 1010.500000 21.791667 4.804545
1996-11-04 10.222222 0.0 48.055556 1011.333333 22.722222 1.964706
Rainfall day month year
datetime_utc
1996-11-01 0 1 11 1996
1996-11-02 0 2 11 1996
1996-11-03 0 3 11 1996
1996-11-04 0 4 11 1996
如果希望datetime_utc
作为列,则必须重置索引,然后可以使用dt.month
、dt.year
和dt.day
访问DateTime方法,如下所示:
# Reset our index so datetime_utc becomes a column
df.reset_index(inplace=True)
# Create new columns
df['day'] = df['datetime_utc'].dt.day
df['month'] = df['datetime_utc'].dt.month
df['year'] = df['datetime_utc'].dt.year
print(df)
datetime_utc Dewptm Fog Humidity Pressurem Tempm Wspdm
0 1996-11-01 11.666667 0.0 52.916667 -2659.666667 22.333333 2.466667
1 1996-11-02 10.458333 0.0 48.625000 1009.833333 22.916667 8.028571
2 1996-11-03 12.041667 0.0 55.958333 1010.500000 21.791667 4.804545
3 1996-11-04 10.222222 0.0 48.055556 1011.333333 22.722222 1.964706
Rainfall day month year
0 0 1 11 1996
1 0 2 11 1996
2 0 3 11 1996
3 0 4 11 1996
注意如果您的索引还不是datetime
类型,请在尝试提取年、月和日之前使用以下内容:
df.index = pd.to_datetime(df.index)
这篇关于如何在 pandas 中将日期列拆分为单独的日、月、年列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在 pandas 中将日期列拆分为单独的日、月、年列
基础教程推荐
猜你喜欢
- Python 的 List 是如何实现的? 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01