熊猫str系列:切片后替换str

时间:2020-05-16 13:49:31

标签: python string pandas slice

让我们说我有几个像这样的Serie的DataFrame:

serie_complete_days = pd.Series(['20190320','20190321','20190322', '20190323', '20190324', '20190325', '20190326', '20190327'])

我试图只保留每个字符串的两个部分(日期和月份),并以欧洲格式替换它们,就像这样。

the_goal_is = pd.Series(['20-03','21-03','22-03', '23-03', '24-03', '25-03', '26-03', '27-03'])

我开始使用str.slice()函数隔离每个部分:

days_only = serie_complete_days.str.slice(start = 6, stop = 8)
months_only = serie_complete_days.str.slice(start = 4, stop = 6)

我认为这是最简单的方法,因为我没有更改DF的索引。但是之后我错过了一些东西,我不知道哪个函数最适合str.join(),str.replace()或str.update()...

提前谢谢!

编辑:我想将此字符串保留为字符串。否,请to_datetime()

1 个答案:

答案 0 :(得分:2)

您可以使用Series.str.replace

result = serie_complete_days.str.replace(r'\d{4}(\d{2})(\d{2})', r'\g<2>-\g<1>')

或者您可以使用Series.dt.strftime

result = pd.to_datetime(serie_complete_days).dt.strftime('%d-%m')

这将返回一个序列为:

0    20-03
1    21-03
2    22-03
3    23-03
4    24-03
5    25-03
6    26-03
7    27-03
dtype: object