【问题标题】:how to add numbering to each sentence using python or pandas?如何使用 python 或 pandas 为每个句子添加编号?
【发布时间】:2022-01-11 18:28:14
【问题描述】:

我有一个这样的数据框。

data
'(p) apple (/p) (p) boy (/p) (p) cat (/p)'
-------------------------------------
'(p) apple (p) (p) boy (/p)'

我想要这样的东西:

data
'(p) 1.apple (/p) (p) 2.boy (/p) (p) 3.cat (/p)'
-------------------------------------------
'(p) 1.apple (p) (p) 2.boy (/p)'

我想为每一行的每个“(p)”标签添加编号。一行可以包含任意数量的

标签,所以我想根据它添加。 请帮我解决这个问题。

【问题讨论】:

  • 提示:df['data'].str.replace 接受正则表达式模式。您可以提取模式,添加枚举,然后将(p) 添加回来。请在问题中展示您的一些努力。
  • 对不起,我不擅长正则表达式。你能帮我吗?我是否需要先计算“p”标签的数量才能枚举?

标签: python pandas dataframe numpy


【解决方案1】:

我会匹配一个正则表达式模式,然后重建 (p)...(/p) 元素:

import re
import pandas as pd

# Test DataFrame
df = pd.DataFrame({"data":["(p)apple(/p)(p)boy(/p)(p)cat(/p)","(p)apple(/p)(p)boy(/p)"]})

pattern = re.compile("\(p\)(.*?)\(/p\)")

df["data"].apply(lambda x: [f'(p){i+1} {s}(/p)' for i, s in enumerate(pattern.findall(x))])

【讨论】:

  • 非常感谢您的回答。它对我有用。
猜你喜欢
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 2015-06-03
  • 2018-11-07
相关资源
最近更新 更多