Python 在DataFrame中保存每个列的唯一值

Python 在DataFrame中保存每个列的唯一值,python,pandas,function,dataframe,Python,Pandas,Function,Dataframe,如果我有这样的数据df: X1 X2 X3 A A C B A C C B C X1 X2 X3 A A C B B C 下一个功能是: for col in df: print(pd.unique(df[col])) 它返回类似于: [A,B,C] [A,B] [C] raw_data = {} for counter, col in enumerate(df): raw_data['X%s' %counter] = pd.unique

如果我有这样的数据df:

X1 X2 X3 
A  A  C
B  A  C
C  B  C
X1 X2 X3 
A  A  C
B  B  
C    
下一个功能是:

for col in df:
    print(pd.unique(df[col]))
它返回类似于:

[A,B,C]
[A,B]
[C]
raw_data = {}
for counter, col in enumerate(df):
    raw_data['X%s' %counter] = pd.unique(df[col])
df = pd.DataFrame(raw_data, columns = list(raw_data.keys()))
?如何将函数的返回保存在数据帧中?我希望看到这样的情况:

X1 X2 X3 
A  A  C
B  A  C
C  B  C
X1 X2 X3 
A  A  C
B  B  
C    
谢谢你

将lambda函数与系列构造函数一起使用,然后重新计算缺少的值:

df1 = df.apply(lambda x: pd.Series(pd.unique(x))).fillna('')
或使用:

将lambda函数与系列构造函数一起使用,然后重新计算缺少的值:

df1 = df.apply(lambda x: pd.Series(pd.unique(x))).fillna('')
或使用:


你可以这样做:

[A,B,C]
[A,B]
[C]
raw_data = {}
for counter, col in enumerate(df):
    raw_data['X%s' %counter] = pd.unique(df[col])
df = pd.DataFrame(raw_data, columns = list(raw_data.keys()))

你可以这样做:

[A,B,C]
[A,B]
[C]
raw_data = {}
for counter, col in enumerate(df):
    raw_data['X%s' %counter] = pd.unique(df[col])
df = pd.DataFrame(raw_data, columns = list(raw_data.keys()))

这是一个很好的答案,每次刷新都会有很大的改进:即使我将完成我的评论,它也会改进10倍:d这是一个很好的答案,每次刷新都会有很大的改进:即使我将完成我的评论,它将改进10倍:dh原始数据帧中有多少列?原始数据帧中有多少列?