gpt4 book ai didi

python - 如何使用正则表达式提取 Pandas 数据框中的特定内容?

转载 作者:太空狗 更新时间:2023-10-29 19:34:38 24 4
gpt4 key购买 nike

考虑以下 Pandas 数据框:

In [114]:

df['movie_title'].head()


Out[114]:

0 Toy Story (1995)
1 GoldenEye (1995)
2 Four Rooms (1995)
3 Get Shorty (1995)
4 Copycat (1995)
...
Name: movie_title, dtype: object

更新:我想用正则表达式提取电影的标题。因此,让我们使用以下正则表达式:\b([^\d\W]+)\b。所以我尝试了以下方法:

df_3['movie_title'] = df_3['movie_title'].str.extract('\b([^\d\W]+)\b')
df_3['movie_title']

但是,我得到以下信息:

0       NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN

知道如何从 pandas 数据框中的文本中提取特定特征吗?更具体地说,我怎样才能在一个全新的数据框中只提取电影的标题?例如,所需的输出应该是:

Out[114]:

0 Toy Story
1 GoldenEye
2 Four Rooms
3 Get Shorty
4 Copycat
...
Name: movie_title, dtype: object

最佳答案

你可以试试str.extractstrip , 但更好的是使用 str.split ,因为在电影名称中也可以是数字。下一个解决方案是 replace regexstrip 的括号内容前导和尾随空格:

#convert column to string
df['movie_title'] = df['movie_title'].astype(str)

#but it remove numbers in names of movies too
df['titles'] = df['movie_title'].str.extract('([a-zA-Z ]+)', expand=False).str.strip()
df['titles1'] = df['movie_title'].str.split('(', 1).str[0].str.strip()
df['titles2'] = df['movie_title'].str.replace(r'\([^)]*\)', '').str.strip()
print df
movie_title titles titles1 titles2
0 Toy Story 2 (1995) Toy Story Toy Story 2 Toy Story 2
1 GoldenEye (1995) GoldenEye GoldenEye GoldenEye
2 Four Rooms (1995) Four Rooms Four Rooms Four Rooms
3 Get Shorty (1995) Get Shorty Get Shorty Get Shorty
4 Copycat (1995) Copycat Copycat Copycat

关于python - 如何使用正则表达式提取 Pandas 数据框中的特定内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36028932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com