python - Pandas - 从行中提取文本
问题描述
假设我有一个如下所示的数据框:
df2 = pd.DataFrame(['Apple, 10/01/2016, 31/10/18, david/kate', 'orange', 'pear', 'Apple', '10/01/2016', '02/20/2017'], columns=['A'])
>>> df2
A file_name
0 Apple, 10/01/2016, 31/10/18, david/kate a.txt
1 orange a.txt
2 pear b.txt
3 Apple a.txt
4 10/01/2016 d.txt
5 02/20/2017 e.txt
我想要的是仅提取此数据框中的日期,因此输出将如下所示:
A file_name
0 10/01/2016, 31/10/18 a.txt
1 Nothing to return a.txt
2 Nothing to return b.txt
3 Nothing to return a.txt
4 10/01/2016 d.txt
5 02/20/2017 e.txt
有人对如何做到这一点有任何建议吗?我不知道从哪里开始。
编辑#1:
我编辑了我的原始数据框和输出结果,以更好地反映我正在寻找的内容。
解决方案
与您想要的输出不完全匹配,但这种结构可能更好,并且可以轻松转换为您想要的。
基本上这是正则表达式的工作。此代码应该找到任何形式的数字/数字/数字:
s = df2["A"]
result = s.str.extractall(r"(\d+/\d+/\d+)")[0]
print(result)
>>> match
0 0 10/01/2016
1 31/10/18
4 0 10/01/2016
5 0 02/20/2017
推荐阅读
- authentication - 如何从 Chrome 中删除所有 SO 痕迹
- javascript - d3面积堆积折线图
- python - Django 对象过滤器
- rstudio - 无法从 RStudio 用西班牙语编织 PDF 文件(在 Centos 7 上)
- django - Django - 序列化程序返回更新数据但不修改数据库
- selenium - 如何使用 selenium 在 Java 中的 firefox 驱动程序中添加扩展
- google-sheets - vlookup(importrange) 函数在另一个电子表格的查询结果表中找不到数据
- azure - 在部署 arm 模板之前检查 Azure VM 名称是否存在
- java - 使用正则表达式从文件中读取文本
- python-3.x - 如何在 Gekko 中实现缺失数据的动态参数估计?