2017-08-11 90 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