Python中的字符串到日期转换



在下面的代码段中:

df['Year']=pd.DatetimeIndex(df['Date']).year
df['Month']=pd.DatetimeIndex(df['Date']).month
df['Day']=pd.DatetimeIndex(df['Date']).day
df['MM_DD_str']=df['Month'].astype(str).str.zfill(2)+'-'+df['Day'].astype(str).str.zfill(2)

因为我只想要 MM-DD,所以我这样做了,现在它是一个字符串。但是后来在程序中,我希望它们采用日期格式。特别是我需要月份来绘制图表。我可以通过从中提取月份来提取日期吗?

编辑:

我想绘制一个图表,其中 Xtick 应该有像 1 月、2 月、3 月到 12 月这样的月份。我必须从数据帧 df['MM_DD_str'] 中提取月份,并将它们作为图表的刻度标签。

这是我为绘制图形编写的最终代码:

md_str = df['MM_DD_str']
get_month =md_str.apply(lambda d: pd.to_datetime(d, format='%m-%d').month)
#print(get_month)
plt.xticks(get_month,('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'))
plt.show()enter code here

我既没有得到输出也没有错误

如果我理解正确,您当前有一个日期字符串,例如"06-23",您稍后想从中提取月份作为日期时间对象:

md_col = df['MM_DD_str']
get_month = lambda d: pd.to_datetime(d, format='%m-%d').month
md_col.apply(get_month)

get_month 是一个 lambda 函数,它获取字符串,将其转换为 datetime 对象,然后提取月份。

.apply(( 获取一个数据帧列并将一个函数应用于该列中的所有行

请注意,如果您的列包含无法转换为日期的 NaN 或字符串,则可以在 .to_datetime 函数中包含 errors 参数:

get_month = lambda d: pd.to_datetime(d, errors='ignore', format='%m-%d').month

我没有正确理解这个问题,但是 DF['date'] 列可用于绘制图形,因为它已经采用日期时间格式

可以使用pd.to_datetime(( 所以让我们说

date='2019-05'
date=pd.to_datetime(date)
date.month 

编辑: Matplotlib 需要数值才能在 x 轴上绘制 当您将 plt.xticks(( 作为某些字符串值时,您无法绘制图形,但您可以更改标签。所以这是一个调整到你的标签的例子

import matplotlib.pyplot as plt
figure=plt.figure()
ax=plt.axes()
df=pd.DataFrame()
months=['june','july','august','september']
dates=['2019-06','2019-07','2019-08','2019-09']
df['dates']=dates
df['values']=[1,4,7,10]
df['dates']=pd.to_datetime(df['dates']) #pd is for pandas
df['values'].plot(ax=ax)     
ax.set_xticks([0,1,2,3,4])   #numerical values that get plotted
ax.set_xticklabels(months)   #actual labels for those numerical values

相关内容

  • 没有找到相关文章

最新更新