我有一個超過 10,000 行和 6 列的資料集(其中一列是“名稱”)。我想提取具有特定名稱的所有行。
例如,如果我想提取具有兩個名稱的行,我使用了以下代碼:
import pandas as pd
df = pd.read_csv('Sample.csv')
df = df[df.Name.str.contains("name_1|name_3")]
df.to_csv("Name_list.csv")
但問題是我有數百個名字,我想提取所有資料,如果我使用上面的代碼,我必須撰寫(復制/粘貼)所有的名字,這很耗時。
有沒有更好的方法來實作我的目標?
先感謝您!
uj5u.com熱心網友回復:
如果你想繼續使用正則運算式contains()方法,那么你可以從一些輸入的 Python 串列中形成一個交替,例如
names = ['name_1', 'name_3'] # add more names here if desired
regex = r'(?:' '|'.join(names) r')'
df = df[df.Name.str.contains(regex)]
uj5u.com熱心網友回復:
您可以加載名稱 csv
namelist = pd.read_csv('name.csv')
df = pd.read_csv('Sample.csv')
df = df[df.Name.str.contains('|'.join(namelist['name'].tolist()))]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/369902.html
