如何将只有日期和月份列的数据帧解析为pd.datetime格式的新列?

2024-04-28 05:53:35 发布

您现在位置:Python中文网/ 问答频道 /正文

A small snippet from my dataframe

我有单独的月份和日期栏。我只需要将month和date解析为pandas datetime类型(其他datetime类型也会有帮助),这样就可以绘制TimeSeries线条图

我试过这段代码

df['newdate'] = pd.to_datetime(df[['Days','Month']], format='%d%m')

但我犯了个错误

KeyError: "['Days' 'Month'] not in index"

我应该如何处理这个错误


Tags: from类型dataframepandasdfdatetimedatemy
1条回答
网友
1楼 · 发布于 2024-04-28 05:53:35

我的评论的例证;如果将列作为字符串类型,则可以按如下方式轻松地连接和输入它们:

import pandas as pd
df = pd.DataFrame({'Month': [1,2,11,12], 'Days': [1,22,3,23]})

pd.to_datetime(df['Month'].astype(str)+' '+df['Days'].astype(str), format='%m %d')
# 0   1900-01-01
# 1   1900-02-22
# 2   1900-11-03
# 3   1900-12-23
# dtype: datetime64[ns]

您还可以向df中添加一个带有任意年份号的“年份”列,并使用您最初打算使用的方法:

df = pd.DataFrame({'Month': [1,2,11,12], 'Days': [1,22,3,23]})
df['Year'] = 2020
pd.to_datetime(df[['Year', 'Month', 'Days']])

相关问题 更多 >