让我们说我有几个像这样的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()
答案 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