用另一个子字符串pandas python替换子字符串

时间:2014-10-28 03:28:55

标签: python string pandas substring

我有一个数据框df.

我想将最后一个字符的第7个到第5个替换为0,如果它是/:

df['StartDate'].str[-7:-5]=df['StartDate'].str[-7:-5].str.replace('/', '0')

返回错误:

TypeError: 'StringMethods' object does not support item assignment

数据如下:

number                 StartDate     EndDate  Location_Id      Item_Id        xxx          yyy\
3                460    4/1/2012   4/11/2012         2502   3890004215         0            0
28              2731  10/17/2013  10/30/2013         3509   5100012114         0            0
34              1091   1/10/2013   1/23/2013         2544   5100012910         0            0
134             1630    5/2/2013   5/15/2013         2506  69511912000         0            0
138              327   1/12/2012   1/25/2012         5503   1380016686

1 个答案:

答案 0 :(得分:1)

Pandas内置了对datetime个对象的支持(pandas可能有自己的实现,而不是直接使用标准库,但想法是一样的),所以不要尝试使用string重新格式化日期方法,转换为datetime要容易得多:

df['StartDate'] = pd.to_datetime(df['StartDate'])

转换后,有一些易于使用的与datetime对象相关的方法可以通过.dt访问器获取(可能是v0.15中最近添加的):

df.StartDate.dt.month
Out[20]: 
3       4
28     10
34      1
134     5
138     1
dtype: int64