2017-10-09 6 views
1

Ich habe Datenrahmen mit 2 Spalten Actor1Name & ActionGeo_FullName und einige 10K Reihen, wollen Datensätze filtern, wenn eine Spalte enthält macao oder macauFilter mehrere Spalte Bedingung verwenden, Python 3.6

Unten ist mein Skript, das richtig ein ? Bitte lassen Sie mich einfaches Skript wissen.

dataMAC = dataAll.loc[dataAll['Actor1Name'].str.contains('macao|macau') == True | dataAll['ActionGeo_FullName'].str.contains('macao|macau') == True] 

Actor1Name ActionGeo_FullName 
macao macau 
US USA 
China China 
UK United Kindom 
China MC macau 

Antwort

2

Ich denke, ja, ein bisschen sollte durch Entfernen ==True und loc verbessert werden:

dataMAC = dataAll[dataAll['Actor1Name'].str.contains('macao|macau') | 
        dataAll['ActionGeo_FullName'].str.contains('macao|macau')] 
print (dataMAC) 
    Actor1Name ActionGeo_FullName 
0  macao    macau 
4  China   MC macau 
+0

vielen dank ... seine arbeit ... –

1

The True ist standardmäßig aktiviert, so dass Sie es nicht brauchen. Und vielleicht kann die .loc-Funktion diese Art von Operation nicht akzeptieren.

+0

danke für info –

+1

Das ist nicht wirklich eine antwort. Können Sie ein funktionsfähiges Code-Snippet bereitstellen? – Risadinha

+0

Hinzufügen zu @Risadinha, wenn Sie keinen Code zur Verfügung stellen, werden Sie im Grunde das gleiche wie die bereits angenommene Antwort sagen (in der sowohl die '== True' und' .loc' entfernt werden. Danke! – lrnzcig