我有一個包含電影名稱和電視劇名稱的資料框。
從特定的關鍵字中,我想根據這些關鍵字將每一行分類為電影或標題。但是,由于括號在關鍵字之間沒有空格,它們沒有被str.contains()函式選中,我需要做一個解決方法。
這是我的資料框:
import pandas as pd
import numpy as np
watched_df = pd.DataFrame([['Love Death Robots (Episode 1)'],
['James Bond'],
['How I met your Mother (Avnsitt 3)'],
['random name'],
['Random movie 3 Episode 8383893']],
columns=['Title'])
watched_df.head()
要添加將標題分類為電視劇或電影的列,我有以下代碼。
watched_df["temporary_brackets_removed_title"] = watched_df['Title'].str.replace('(', '')
watched_df["Film_Type"] = np.where(watched_df.temporary_brackets_removed_title.astype(str).str.contains(pat = 'Episode | Avnsitt', case = False), 'Series', 'Movie')
watched_df = watched_df.drop('temporary_brackets_removed_title', 1)
watched_df.head()
有沒有更簡單的方法來解決這個問題而不必添加和洗掉列?
也許是一個類似str.contains函式,它不查看完全相同的字串,而只包含給定的單詞?類似于 SQL 中的“Like”功能?
uj5u.com熱心網友回復:
您可以使用str.contains然后map結果:
watched_df['Film_Type'] = watched_df['Title'].str.contains(r'(?:Episode|Avnsitt)').map({True: 'Series', False: 'Movie'})
輸出:
>>> watched_df
Title Film_Type
0 Love Death Robots (Episode 1) Series
1 James Bond Movie
2 How I met your Mother (Avnsitt 3) Series
3 random name Movie
4 Random movie 3 Episode 8383893 Series
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366345.html
