|
发表于 2024-6-19 22:03:44
|
显示全部楼层
嗨!看起来你想从DataFrame中的文本列中提取数字对吧?没问题,我们可以用正则表达式来做这件事。Python中的`re`模块可以帮助我们处理这种情况。
假设你有一个名为`df`的DataFrame,其中有一个叫做`原始文本`的列包含了像这样的文本:
- 事假0.5天,因要回村开会 事假
- 事假1天,去喝喜酒 事假
- 休年假3天 年假
- 事假1天,老人家病了,要去医院
- 事假0.5天,要去医院复查身体
复制代码
现在让我们编写代码来提取这些文本中的数字部分:
- import pandas as pd
- import re
- # 假设df是你的DataFrame,'原始文本'列包含了这些文本
- data = {'原始文本': [
- '事假0.5天,因要回村开会 事假',
- '事假1天,去喝喜酒 事假',
- '休年假3天 年假',
- '事假1天,老人家病了,要去医院',
- '事假0.5天,要去医院复查身体'
- ]}
- df = pd.DataFrame(data)
- # 使用正则表达式提取数字
- df['提取的数字'] = df['原始文本'].apply(lambda x: re.findall(r'\d+\.\d+|\d+', x))
- # 将提取的数字转换成浮点数
- df['提取的数字'] = df['提取的数字'].apply(lambda x: [float(i) for i in x])
- print(df)
复制代码
这段代码做了以下几件事情:
1. 导入了`pandas`和`re`模块。
2. 创建了一个示例的DataFrame `df`,并包含了示例的文本数据。
3. 使用`apply`函数结合正则表达式`re.findall`来提取每行文本中的数字部分,结果存储在新列`提取的数字`中。
4. 最后,将提取的字符串数字转换成浮点数列表。
运行这段代码后,你会得到一个新的DataFrame `df`,其中包含了从原始文本中提取出的数字列表。希望这可以帮到你!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|