Python 提取字符串

本文所使用的數(shù)據(jù)可以從百度云下載,鏈接: https://pan.baidu.com/s/1Ytlmw0QuW3ex3fi4Zr-DYw 密碼: mf9n

1 提取電影中文名稱

我們在中國電影網(wǎng)上抓取了一些華語電影的數(shù)據(jù),其中電影名稱字段一般使用“中文電影名”+“年份”+“英文電影名”的方式存儲,例如“讓子彈飛(2010)\nLet The Bullets Fly\n\n”。如果我們想要提取中文的電影名稱,如何使用python進(jìn)行處理呢?

答案是使用split函數(shù),參數(shù)設(shè)置為中文的括號

# coding:utf-8
import pandas as pd
import numpy as np
import re

#顯示所有列
pd.set_option('display.max_columns', None)
#顯示所有行
pd.set_option('display.max_rows', None)

data = pd.read_excel("./中國電影網(wǎng)電影_data.xlsx")
movie_name = data["電影名"]
for i in range(len(movie_name)):
    print(movie_name[i].split("(")[0])

輸出結(jié)果為(顯示前五行):

讓子彈飛
唐山大地震
非誠勿擾2
狄仁杰之通天帝國
葉問2:宗師傳奇

2 提取前三位主演中文名稱

主演的字段一般使用“中文名”+“英文名”+“中文名”+“英文名”+···交替顯示,使用空格作為中文名和英文名的分隔符,現(xiàn)在想輸出每部電影的三位主演,如何使用python進(jìn)行處理?

答案是使用正則表達(dá)式中的compile函數(shù)生成匹配模式對象,并在該對象上調(diào)用findall方法尋找所有能夠匹配該模式的字符串。

lead_actor = data["主演"]
print(lead_actor)
for i in range(len(lead_actor)):
   if lead_actor[i] is not np.nan:
       pattern = re.compile("[\u4e00-\u9fa5·]+")
       print(" ".join(pattern.findall(lead_actor[i])[0:3]))

   else:
       print(np.nan)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容