python - 将正则表达式应用于 pandas 数据框列

标签 python regex pandas

我正在尝试应用一些我已编码并可以针对变量运行的正则表达式,但我想将其应用到数据帧列上,然后将结果传递到新列

df["Details"] is my dataframe

df["Details"] 是我的数据框,它包含一些类似于我在下面创建的详细信息的文本

import re
details = '1st: Batman 01:12.98 11.5L'

position = re.search('\w\w\w:\s', details)
distance = re.search('(\s\d\d.[0-9]L)', details)
time = re.search(r'\d{2}:\d{2}.\d{2}',details)

print(position.group(0))
print(distance.group(0))
print(time.group(0))
output is then 
    1st: 
    11.5L
    01:12.98

我希望能够将这些值添加到数据框中名为位置、距离、时间的新列中,分别与输出匹配

最佳答案

我相信你需要Series.str.extract :

details = '1st: Batman 01:12.98 11.5L'

df = pd.DataFrame({"Details":[details,details,details]})

df['position'] = df['Details'].str.extract(r'(\w\w\w:\s)')
df['distance'] = df['Details'].str.extract(r'(\s\d\d.[0-9]L)')
df['time'] = df['Details'].str.extract(r'(\d{2}:\d{2}.\d{2})')
print(df)

                      Details position distance      time
0  1st: Batman 01:12.98 11.5L    1st:     11.5L  01:12.98
1  1st: Batman 01:12.98 11.5L    1st:     11.5L  01:12.98
2  1st: Batman 01:12.98 11.5L    1st:     11.5L  01:12.98

关于python - 将正则表达式应用于 pandas 数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56714373/

相关文章:

python - 以类的对象作为其项目对列表进行排序

python - 使用 pdb 调试 tox python 测试?

python - 完成这个任务需要什么代码?

regex - 如何设置正则表达式以在 R 中使用 grep 或 dplyr 查找变量?

javascript - 选择第 n 个和第 n+N 个标记之间的内容

python - 我如何快速洗牌 Pandas 系列

python - 如何在Python中使用groupby删除列表中的重复项?

python - 对 2^30 个 32 位整数进行排序。最佳解决方案

python - 列表总和,不改变列表pandas的长度

javascript - ng-pattern 以确保文本字段字母不以特定单词结尾