连续获取所有唯一值

Sci*_*tas 6 python dataframe pandas

我有一个df1看起来像这样的DataFrame :

A       B       C
-----------------
1       1       2
2       2       3
5       4       9
Run Code Online (Sandbox Code Playgroud)

我希望连续获得所有唯一值.例如,第一行中的示例1和2.2,3排在第二排.第三排是4,5和9.

结果可能会有所不同,我可以想象一个包含具有唯一值的列表或替换重复项的新列None也可以(或者其他东西,可能在这种情况下有更多的pythonic).

WeN*_*Ben 16

list(map(set,df.values))
Out[72]: [{1, 2}, {2, 3}, {4, 5, 9}]
Run Code Online (Sandbox Code Playgroud)


Max*_*axU 7

In [88]: df.stack().groupby(level=0).apply(lambda x: x.unique().tolist())
Out[88]:
0       [1, 2]
1       [2, 3]
2    [5, 4, 9]
dtype: object
Run Code Online (Sandbox Code Playgroud)


Flo*_*oor 6

让我们使用pd.uniqueie

df.T.agg([pd.unique])

        0       1          2
unique  [1, 2]  [2, 3]  [5, 4, 9]
Run Code Online (Sandbox Code Playgroud)