2016-11-30 7 views
1

Ich habe eine Tabelle in meinem Pandas Datenrahmen.Erstellen Sie einen neuen Datenrahmen aus der Auswahl bestimmter Zeilen aus dem vorhandenen Datenrahmen Python

df
id count price 
1 2  100 
2 7  25 
3 3  720 
4 7  221 
5 8  212 
6 2  200 

Ich möchte einen neuen Datenrahmen (DF2) von diesem erstellen, Zeilen auswählen, wo Anzahl 2 ist und der Preis ist 100 und Zählung 7 und der Preis ist 221

mein ausgegeben werden soll df2 =

id count price 
1 2  100 
4 7  221 

ich versuche df[df['count'] == '2' & df['price'] == '100']

verwenden, aber immer Fehler

TypeError: cannot compare a dtyped [object] array with a scalar of type [bool] 
+0

Es ist ein Klassiker: 'df [(df ['count'] == '2') & (df [' Preis '] ==' 100 ')] '. – IanS

Antwort

3

Sie nedd () hinzufügen, da & höhere Priorität als == hat:

df3 = df[(df['count'] == '2') & (df['price'] == '100')] 
print (df3) 
    id count price 
0 1  2 100 

Wenn mehrere Werte isin verwenden müssen überprüfen:

df4 = df[(df['count'].isin(['2','7'])) & (df['price'].isin(['100', '221']))] 
print (df4) 
    id count price 
0 1  2 100 
3 4  7 221 

Aber wenn Check numerisch, Verwendung:

df3 = df[(df['count'] == 2) & (df['price'] == 100)] 
print (df3) 

df4 = df[(df['count'].isin([2,7])) & (df['price'].isin([100, 221]))] 
print (df4) 
+0

aber wie verbinde ich zwei Ergebnisse in 1 df.? Ich dachte daran, zwei verschiedene Daten für meine zwei Zeilen, die ich will, zu erstellen und sie dann anhängen? gibt es eine andere Möglichkeit, es zu tun? – Shubham

+0

Glauben Sie, dass Sie 'df3' oder' df4' zuordnen? – jezrael

+0

df4 funktioniert gut! – Shubham

Verwandte Themen