2017-08-11 5 views
0

Ich habe Datenrahmen, in denen ich Werte dupliziert (in jeder Spalte nicht dupliziert Zeilen). Daten sehen wie folgt aus:Datenrahmen mit eindeutigen Werten aus anderen Datenrahmen (Pandas, Python)

|Col1|Col2|Cold3|Col4| 
| 1| A| John| -10| 
| 2| A|Scoot| 234| 
| 2| B|Kerry| 346| 
| 6| B| Adam| -10| 

Ich möchte eine andere df von diesem schaffen, die so aussehen würde:

|Col1|Col2|Cold3|Col4| 
| 1| A| John| -10| 
| 2| B|Scoot| 234| 
| 6|null|Kerry| 346| 
|null|null| Adam|null| 

Diejenigen null NaN natürlich sein könnte.

kann ich durch jede Spalte gehen und eindeutige Werte für jeden Druck:

for col in df: 
    print (df[col].unique()) 

die numpy Arrays zurückgibt. Aber ich bin mir nicht sicher, wie man es in den neuen Datenrahmen schreibt, um wie einer zu aussehen, den ich früher gezeigt habe.

Antwort

0

Ich glaube, Sie brauchen:

df = df.apply(lambda x: pd.Series(x.unique())) 
print (df) 
    Col1 Col2 Cold3 Col4 
0 1.0 A John -10.0 
1 2.0 B Scoot 234.0 
2 6.0 NaN Kerry 346.0 
3 NaN NaN Adam NaN 

Oder:

df = df.apply(lambda x: pd.Series(x.drop_duplicates().values)) 
print (df) 
    Col1 Col2 Cold3 Col4 
0 1.0 A John -10.0 
1 2.0 B Scoot 234.0 
2 6.0 NaN Kerry 346.0 
3 NaN NaN Adam NaN 
+0

Es scheint zu funktionieren, muss ich doppelt überprüfen, da ich große Datenmenge haben. Vielen Dank! – Submi

+0

Bitte überprüfen Sie es sorgfältig. Wenn meine Antwort hilfreich war, vergiss nicht [accept] (http://meta.stackexchange.com/a/5235/295067) es - klicke auf das Häkchen ('✓') neben der Antwort, um es von grau zu schalten heraus zu füllen. Danke. – jezrael

Verwandte Themen