2016-08-25 3 views
2

Dies ist meine erste Frage in diesem Forum, tut mir leid, wenn mein Englisch nicht so gut ist!Wie nach einem Wert in einer Python-DataFrame-Spalte gesucht wird?

Ich möchte nur dann eine Zeile zu einem Datenrahmen hinzufügen, wenn eine bestimmte Spalte nicht bereits einen bestimmten Wert enthält. Lassen Sie sagen, ich dies schreibe:

df = pd.DataFrame([['Mark', 9], ['Laura', 22]], columns=['Name', 'Age']) 
new_friend = pd.DataFrame([['Alex', 23]], columns=['Name', 'Age']) 
df = df.append(new_friend, ignore_index=True) 
print(df) 

    Name Age 
0 Mark 9 
1 Laura 22 
2 Alex 23 

Jetzt will ich einen anderen Freund hinzufügen, aber ich möchte sicherstellen, dass ein Freund mit dem gleichen Namen ich noch nicht haben. Hier ist, was ich eigentlich tun:

new_friend = pd.DataFrame([['Mark', 16]], columns=['Name', 'Age']) 
df = df.append(new_friend, ignore_index=True) 
print(df) 

    Name Age 
0 Mark 9 
1 Laura 22 
2 Alex 55 
3 Mark 16 

dann:

df = df.drop_duplicates(subset='Name', keep='first') 
df = df.reset_index(drop=True) 
print(df) 

    Name Age 
0 Mark 9 
1 Laura 22 
2 Alex 55 

Gibt es eine andere Möglichkeit, diese etwas zu tun wie:

wenn Name in Spalte ‚Name'is True:

nicht hinzufügen Freund

anderes:

Freund hinzufügen

Vielen Dank!

+0

Sie können 'tun (df [ 'Name'] == name) .any()' nach genauen Übereinstimmungen in jeder Zeile testen – EdChum

+0

Es funktioniert, aber ich erhalte ein Attribut: 'NoneType' Objekt nicht hat Attribut 'any' – BillyBoom

Antwort

0
if 'Mark' in list(df['Name']): 
    print('Mark already in DF') 
else: 
    print('Mark not in DF') 
+0

Ehrfürchtig! Danke! – BillyBoom

Verwandte Themen