使用replace删除系列中的字符

时间:2018-06-03 15:17:23

标签: python python-3.x pandas replace series

我有一系列看起来如下:

datum

02-jun-18

01-jun-18

01-jun-18

30-maj-18

30-maj-18

29-maj-18

27-maj-18

25-maj-18

25-maj-18

25-maj-18

14-maj-18

我想删除每一行的日期,但请使用以下代码保留月份和年份:

df['datum']=df['datum'].replace(df['datum'][0:2],' ') 

但它不起作用。任何人都可以解释为什么以及如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

df['datum'].replace(df['datum'][0:2],' ')将使用空格替换前两个,而不是每行中的前两个字母。您想使用df.datum.str

选项1 (如果所有月份都是三个字母的缩写)
string slicing

df.datum.str[-8:]

0    jun 2018
1    jun 2018
2    maj 2018
Name: datum, dtype: object

选项2
使用 str.replace

.*\s(\w+\s\w+)$
df.datum.str.replace(r'.*\s(\w+\s\w+)$', r'\1')

0    jun 2018
1    jun 2018
2    maj 2018
Name: datum, dtype: object

答案 1 :(得分:0)

您可以使用str.split

pd.Series(['18 may 2018','10 jun 2018']).str.split(' ',1).str[1]
Out[209]: 
0    may 2018
1    jun 2018
dtype: object