2016-04-12 3 views
0

Der obige Code zu arbeiten: Es würde alle Zeilen aller Kombinationen von Paaren der weekly_meetings_difference Spalten, wo die Spalte Werte (wenn dies für alle wahr war) Paar Spalten). Jetzt gibt mir weekly_meetings_difference einige, aber nicht alle der Zeilen zurück, in denen sich die Spaltenwerte geändert haben.prüfen Sie Kombinationen von Spalten in einem DF, um eindeutige Zeilen zurückzugeben


Bearbeiten mit einigen Code:

Vor (wenn alles schien zu funktionieren einwandfrei zu):

Number of Notes 03112016 Number of Notes 03192016 Number of Notes 03272016 Number of Notes 04042016 
Meeting Name     
X  12.0 NaN NaN NaN 
Y  5.0 5.0 NaN NaN 
Z  2.0 NaN NaN NaN 
W  NaN 6.0 713.0 740.0 

Nach (jetzt, dass ich die Original-Datenrahmen aktualisiert haben, von dem ich Informationen wünschen):

Number of Notes 03112016 Number of Notes 03192016 Number of Notes 03272016 Number of Notes 04042016 Number of Notes 04122016 Emails 04122016 
Meeting Name       
A 37.0 37.0 38.0 38.0 37.0 
X 12.0 NaN NaN NaN NaN NaN 
Y 5.0 5.0 NaN NaN NaN NaN 
Z 2.0 NaN NaN NaN NaN NaN 

Jetzt, dass ich diesen Schnitt gemacht habe, merke ich Zeile A wurde nach dem Hinzufügen der e hinzugefügt Xtra Spalte zum Datenrahmen sowie Zeile W wird entfernt (sie beide sollten jedes Mal angezeigt)

+0

Können Sie ein reproduzierbares Beispiel für das gewünschte Verhalten und was Sie gerade sehen? – MedAli

+0

Fertig, danke für den Vorschlag. Etwas auf mich gerichtet hatte ich auch nicht bemerkt (letzter Satz meiner Bearbeitung) –

Antwort

1

Lassen Sie mich zunächst sicherstellen, dass ich das Problem verstehe. Suchen Sie nach Zeilen in einem Datenrahmen, die mehr als einen eindeutigen Wert haben? Das heißt, der Wert ändert sich mindestens einmal in der Zeile.

import pandas as pd 
df = pd.DataFrame({'a': [1, 1, 1], 'b': [1, 2, 3], 'c': [1, 1, 3]}) 

    a b c 
0| 1 1 1 
1| 1 2 1 
2| 1 3 3 

In dem Datenrahmen oben, würden Sie die Zeilen 1 und 2. Wenn ja wollen, würde ich so etwas wie tun:

df.apply(pd.Series.nunique, axis=1) 

, die die Anzahl der eindeutigen Werte in jeder Zeile des Datenrahmen zurückzugibt:

0 1 
1 2 
2 2 
dtype: int64 

dieses Ergebnis verwenden, können wir die Reihen wählen wir interessieren mit:

df[df.apply(pd.Series.nunique, axis=1) > 1] 

, die die erwartete Rückkehr:

a b c 
1| 1 2 1 
2| 1 3 3 

Ist das, was Sie nach, oder ist es etwas anderes? Gerne zu bearbeiten, wenn Sie klären.

Verwandte Themen