将括号附加到熊猫中的字母和日语字符串的组合中

问题描述 投票:2回答:2

我在数据帧中有一些看起来像这样的数据:

Japanese
--------
明日|Adverb の 天気|Weather は なんですか

这里,明日标有副词,天気标有天气。

使用Pandas和正则表达式,我正在寻找一种方法来附加{}围绕具有日语,管道和英语的字符,但不是仅限于日语。我尝试使用以下正则表达式,但不断收到语法错误:

df。['Japanese'] = df ['Japanese']。str.append('(。+?\ | [A-Za-z _] +)\','{(。+?\ | [A-Za -z _] +)}')

所需的输出如下(同时寻找一种同时删除所有空格的方法......如果不可能,我可以在之后这样做):

Japanese
--------
{明日|Adverb}の{天気|Weather}はなんですか

谢谢!

python regex pandas
2个回答
2
投票

你可以使用str.replace

df['Japanese'] = df['Japanese'].str.replace(r'(\w*\|[a-zA-Z]+)', r'{\1}', regex=True)   

# To remove white space use
df.Japanese.str.replace('\s',"", regex=True, inplace=True) 

# Output:

0    {'明日|Adverb'}の{'天気|Weather'}はなんですか
Name: Japanese, dtype: object

1
投票

我想你想要这个

df['Japanese'].replace(r'(.+?\|[A-Za-z_]+)','{\g<0>}', inplace=True, regex=True)

\g<0>是对()内部组的引用

不幸的是我无法弄清楚如何在一行中替换空格,所以之后你想做

df['Japanese'].replace('\s','', inplace=True,regex=True)
© www.soinside.com 2019 - 2024. All rights reserved.