2017-10-03 1 views
1

Hallo Ich habe eine Liste von Schlüsselwörtern.Wie man mehrere Schlüsselwörter mit einem Datenrahmen Spaltenwerte mit Pandas in Python zuordnen

keyword_list=['one','two'] 

DF, 

    Name  Description 
    Sri  Sri is one of the good singer in this two 
    Ram  Ram is one of the good cricket player 

Ich möchte die Zeilen finden, die alle Werte aus meiner Keyword_list haben.

meine gewünschte Ausgabe ist,

output_Df, 
    Name Description 
    Sri  Sri is one of the good singer in this two 

I tried, mask=DF['Description'].str.contains() method but I can do this only for a single word pls help. 

Antwort

2

Verwenden np.logical_and + reduce aller von list comprehension erstellten Masken:

keyword_list=['one','two'] 

m = np.logical_and.reduce([df['Description'].str.contains(x) for x in keyword_list]) 
df1 = df[m] 
print (df1) 

    Name        Description 
0 Sri Sri is one of the good singer in this two 

Alternativen für Maske:

m = np.all([df['Description'].str.contains(x) for x in keyword_list], axis=0) 

#if no NaNs 
m = [set(x.split()) >= set(keyword_list) for x in df['Description']] 
+1

Ihre Lösung für die obige Frage arbeitet gut, könntest du mir bitte die besten Tutorials für Number und Pandas vorschlagen, da ich ein guter Witz sein will schlagen. – pyd

+0

Harte Frage, meiner Meinung nach sind die besten Pandas Dokumentation und Tutorials, besonders mag ich [moderne Pandas] (http://pandas.pydata.org/pandas-docs/stable/tutorials.html#modern-pandas). – jezrael

+0

okay, danke – pyd

Verwandte Themen