python - pandas str 系列:切片后替换 str
问题描述
假设我有几个 DataFrames 一个特定的 Serie 像这样:
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()
解决方案
您可以使用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
推荐阅读
- wordpress - 混合内容问题让我抓狂
- angular - 我正在尝试使用角度材料制作弹出表单,但遇到了一些错误
- python - 使用结构化数据的 tf.tensor 对象的简单 TensorFlow (Keras) 模型
- python - 用于字数统计垃圾邮件/火腿分类的缩减程序
- python - 有没有办法创建与用户输入一样多的列表?
- python - 如何将打印命令对齐到另一个打印命令的右侧而不是底部?
- homebrew - 错误:qt@5.5:未知版本:mountain_lion
- android - 如何将可绘制对象的动态路径传递给 BitmapFactory.decoreResource() 的第二个参数
- c# - 如何在 C# 中优雅地填充异构数组
- angular - 为什么新部署的 Angular 应用不加载组件?