【问题标题】:Regular Expressions in a dataframe Python数据框 Python 中的正则表达式
【发布时间】:2020-01-21 23:55:49
【问题描述】:

我正在尝试从数据框中提取名称。

df.['target_name'].head()

3                             Minnie
4     Albert [unclear]Gles[/unclear]
5      Eliza [unclear]Gles[/unclear]
6                      John Slaltery
7     [unclear]P.[/unclear] Slaltery
23     ? Stewart
34                     John Maddison
35                     Herbert Olney
36                   William Iverach
37               [unclear][/unclear]
38                  Peter Blacksmith
39                    William Oliver
40                             Emily
Name: target_name, dtype: object

这是输出。我们只想去掉不必要的字符并获取名称。 这就是我所做的:

import re
df['target_name'] = df['target_name'].astype(str) #converting it into a string. 

我尝试使用这两种方法,但两者都给了我相同的输出,即 Nan

df['target_name'] = df['target_name'].str.extract('([a-zA-Z ]+)', expand=False).str.strip()
df['target_name3'] = df['target_name'].str.replace(r'\([^)]*\)', '').str.strip()

【问题讨论】:

  • 试试df['target_name'] = df['target_name'].astype(str).replace(r'^\W+|\[[^][]*]', '')
  • 您好,感谢您的及时回复,但它没有做任何更改。
  • 即使df['target_name3'] = df['target_name'].astype(str).str.replace(r'^\W+|\[[^][]*]', '')?
  • 给出相同的输出。

标签: python regex dataframe


【解决方案1】:

这似乎对我有用。

import pandas as pd
import re
target_name = ["Minnie", "Albert [unclear]Gles[/unclear]", 
               "Eliza [unclear]Gles[/unclear]", 
               "[unclear]P.[/unclear] Slaltery",  "? Stewart"]
df = pd.DataFrame(target_name, columns = ['target_name'])
df['target_name'] = df['target_name'].astype('str').str.replace(r'\/|\?','').str.replace('\[[a-z]+\]','').str.strip()

【讨论】:

  • 谢谢,这对我也有用。有一个条目旁边有一个问号。它并没有摆脱它。
  • 我已修改代码以删除“?”也是。添加旁注,请始终尝试提供其他人可以轻松运行的示例。
猜你喜欢
  • 2021-04-10
  • 2016-09-29
  • 2021-03-23
  • 2021-03-20
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多