在 DataFrame 中保存每列的唯一值

Aib*_*loy 1 python function dataframe pandas

如果我有这样的数据(df):

X1 X2 X3 
A  A  C
B  A  C
C  B  C
Run Code Online (Sandbox Code Playgroud)

随着下一个功能:

for col in df:
    print(pd.unique(df[col]))
Run Code Online (Sandbox Code Playgroud)

它返回如下内容:

[A,B,C]
[A,B]
[C]
Run Code Online (Sandbox Code Playgroud)

¿How can I save the return of the fuction in a DataFrame?,我想这样看:

X1 X2 X3 
A  A  C
B  B  
C    
Run Code Online (Sandbox Code Playgroud)

谢谢 !

jez*_*ael 8

将 lambda 函数与Series构造函数一起使用,然后重新分配缺失值:

df1 = df.apply(lambda x: pd.Series(pd.unique(x))).fillna('')
Run Code Online (Sandbox Code Playgroud)

或使用Series.drop_duplicates

df1 = df.apply(lambda x: x.drop_duplicates().reset_index(drop=True)).fillna('')
Run Code Online (Sandbox Code Playgroud)
print (df1)
  X1 X2 X3
0  A  A  C
1  B  B   
2  C      
Run Code Online (Sandbox Code Playgroud)