在使用 python 的条件下向 textblurp 添加新行 (/n)
Adding a new line (/n) to a textblurp under condition using python
我目前正在尝试拆分文本,尤其是在“.”(点)之后没有 space 的地方。 df 是一个 csv 文件。
我当前的代码(请不要介意 spaces):
for i in df['blurb']:
try:
df.loc[i,'blurb'] = df.loc[i,'blurb'].replace('.A', '.\nA')
except:
pass
...
try:
df.loc[i,'blurb'] = df.loc[i,'blurb'].replace('.Z', '.\nZ')
except:
pass
这是字母表中的每个字母,因为我想在每个这样的点之后放一个 /n [nem 行]。
结果和原来的一样(不想保存覆盖原来的)。如果我创建另一个专栏 [blurb2],它会给出与原始 blurb 专栏相同的结果。我已经在该网站上寻找了几个小时的答案,但似乎没有任何效果 [虽然没有错误消息] ...这让我发疯 ...
有人有什么建议吗?提前致谢!
干杯
要在点后有非空格的点后插入换行符,您可以使用
df['blurb'] = df['blurb'].str.replace(r'\.(?=\S)', '\g<0>\n')
注意这里
\.
- 匹配后跟 的点字符
(?=\S)
- 除空格以外的任何字符。由于它是一个正则表达式前瞻,它的模式只会被检查,但不会被消耗。
\g<0>
是正则表达式匹配的整个匹配值。
我目前正在尝试拆分文本,尤其是在“.”(点)之后没有 space 的地方。 df 是一个 csv 文件。
我当前的代码(请不要介意 spaces):
for i in df['blurb']:
try:
df.loc[i,'blurb'] = df.loc[i,'blurb'].replace('.A', '.\nA')
except:
pass
...
try:
df.loc[i,'blurb'] = df.loc[i,'blurb'].replace('.Z', '.\nZ')
except:
pass
这是字母表中的每个字母,因为我想在每个这样的点之后放一个 /n [nem 行]。
结果和原来的一样(不想保存覆盖原来的)。如果我创建另一个专栏 [blurb2],它会给出与原始 blurb 专栏相同的结果。我已经在该网站上寻找了几个小时的答案,但似乎没有任何效果 [虽然没有错误消息] ...这让我发疯 ...
有人有什么建议吗?提前致谢!
干杯
要在点后有非空格的点后插入换行符,您可以使用
df['blurb'] = df['blurb'].str.replace(r'\.(?=\S)', '\g<0>\n')
注意这里
\.
- 匹配后跟 的点字符
(?=\S)
- 除空格以外的任何字符。由于它是一个正则表达式前瞻,它的模式只会被检查,但不会被消耗。
\g<0>
是正则表达式匹配的整个匹配值。