2017-07-25 2 views
0

Ich habe verschiedene Lösungen ausprobiert, wo ähnliche Fragen gestellt wurden, aber bisher nicht das erwartete Ergebnis erzielt haben.Python Pandas entspricht Excel Count

Ich habe zwei Datenrahmen, df1 und df2, wo beide eine Spalte mit dem Namen 'fb rq id' enthalten.

Es gibt weit mehr Linien in df2 als in df1, und ich möchte, um zu überprüfen, welche Werte von df2['fb rq id'] in df1['fb rq id'] sind und wie oft es scheint es, auf dieser Linie eine Spalte auf df2 mit der Anzahl, wie oft die Schaffung von Mehrwert ist in df1.

Wenn Sie wissen, wie man eine Spalte mit nur binären Informationen erstellt, ob df2.['fb rq id'] in df1['fb rq id'] ist, hilft das auch.

Vielen Dank !!

+1

"* Wenn Sie wissen, wie eine Spalte mit nur binäre Information, ob df2 zu schaffen. [ 'Fb rq id'] ist in df1 [ 'fb rq id'], das hilft auch. *" Das ist ' df2 ['id']. isin (df1 ['id']) 'und wenn Sie' .sum() 'an das Ende setzen, erhalten Sie die Gesamtzahl der Vorkommen. – ayhan

+0

Oder 'df1 ['rb rq id']. Value_counts() [df2 ['rb rq id']]' kann in einigen Fällen effizienter sein. –

+1

@YakymPirozhenko würde nicht KeyError für Werte in DF2 aber nicht in DF1 auslösen? – ayhan

Antwort

1

Wie wäre es damit?

df2['count_from_df1'] = [list(df1['fb rq id']).count(id) 
         if id in df1['fb rq id'] else 0 
         for id in df2['fb rq id']]