Python pandas:仅从列中提取行的月-日值
我想为我的数据绘制一个折线图,但是由于长日期格式(Y-M-D),x轴变得非常紧密,我检查了“日期”的数据类型,它返回:Python pandas:仅从列中提取行的月-日值,python,pandas,dataframe,Python,Pandas,Dataframe,我想为我的数据绘制一个折线图,但是由于长日期格式(Y-M-D),x轴变得非常紧密,我检查了“日期”的数据类型,它返回: In[200]: df['date'].dtypes Out[200]: dtype('O') 因此,我的“日期”值为: date ---- 2020-04-12 2020-05-13 2020-02-02 但我只想提取月份和日期,使列看起来像 date ---- 04-12 05-13 02-02 我该怎么做?由于我的数据类型是“O”,所以我找不到任何类似的东西,因此我
In[200]: df['date'].dtypes
Out[200]: dtype('O')
因此,我的“日期”值为:
date
----
2020-04-12
2020-05-13
2020-02-02
但我只想提取月份和日期,使列看起来像
date
----
04-12
05-13
02-02
我该怎么做?由于我的数据类型是“O”,所以我找不到任何类似的东西,因此我为重复表示歉意。感谢所有的帮助 通过索引使用并选择第二个列表str[1]
:
df['date'] = df['date'].str.split('-', n=1).str[1]
#if dates objects
#df['date'] = df['date'].astype(str).str.split('-', n=1).str[1]
print (df)
date
0 04-12
1 05-13
2 02-02
或通过以下方式转换为日期时间:
它工作正常,但在底部我收到一个错误,它是
:3:SettingWithCopyWarning:试图在数据帧切片的副本上设置一个值。尝试使用.loc[row_indexer,col_indexer]=value来代替
@xsmith-此错误意味着在我的解决方案之前有一些筛选,是否可能在df['date']=…
之前发布代码?@xsmith-需要.copy()
如果某些筛选器类似于df=df[df.a>10]。copy()
没关系,这是由于冗余变量xD引起的。很抱歉造成混淆!
df['date'] = pd.to_datetime(df['date']).dt.strftime('%m-%d')