python - 仅用日期组件替换 pandas 列中的混合字符串/日期值
问题描述
我有一个包含字符串和日期信息的 pandas df 列。我想只用日期信息替换此列。我想我可以将 df.replace() 函数与 regex=True 选项一起使用,但我真的不知道该怎么做。我尝试了几种方法,但似乎无法弄清楚逻辑。任何和所有的帮助将不胜感激!
以下是列中找到的值的示例:
DATE_COLUMN
Foo 11-2008 酒吧
嘻哈 12-2008 跳
some_text 01-2009 some_more_text
我只想用 MM-YYYY 数据替换上述单元格。
我还有另一个具有类似模式的 df (但如果我能理解如何解决上述问题,我想我将能够弄清楚这个):
DATE_COLUMN
Foo 12-2007 至 11-2008 酒吧
臀部 01-2008 至 12-2008 跳跃
Some_text 02-2008 至 01-2009 some_more_text
在这种情况下,我只想用第二个 MM-YYYY 元素替换每个单元格。
再次,非常感谢任何和所有的帮助。谢谢!
解决方案
to_datetime
使用清理数据的内置格式提取str.extract
:
df['date'] = df['date'].str.extract(r'.*(\d\d-\d\d\d\d)')
df["date"] = pd.to_datetime(df["date"], format="%m-%Y")
正.*
则表达式中的 将通过仅保留最后一次出现来处理双日期。
推荐阅读
- javascript - 这怎么能写得更好/更简单?
- c# - 当form1中的值更改时如何使form2更新
- python - Python 初学者 - RGB 值到 HEX。我的代码有多糟糕?
- java - 如果 Java 中的对象满足特定条件,则从 json 数组中获取值
- reactjs - React 新项目在保存时不会重新编译
- html - 容器溢出字体可以用css调整吗?
- javascript - 如何从 Promise 获取某个索引位置的对象?
- reactjs - 在 Typescript 中,如果设置了另一个可选属性,如何使属性成为必需?
- ansible - 无论条件如何,Ansible 任务都会运行
- android - DAO 方法的返回值出现 Nullpointer 异常