2017-08-11 121 views
0

我有數據框,其中我有重複的值(在每列中沒有重複的行)。 數據看起來像:來自其他數據框(熊貓,python)的唯一值的數據框

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

我想創建這個它看起來像另一個DF:

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

那些空可能是當然的NaN。

我可以每列去爲每個打印唯一值:

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

返回numpy的陣列。 但我不知道如何將它寫入新的數據框,看起來像我顯示的那樣。

回答

0

我想你需要:

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 

或者:

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

看來工作,我一定要仔細檢查,因爲我有大的數據集。謝謝! – Submi

+0

請仔細檢查。如果我的回答有幫助,請不要忘記[接受](http://meta.stackexchange.com/a/5235/295067) - 點擊答案旁邊的複選標記('✓')將其從灰色出來填補。謝謝。 – jezrael