首页 > 解决方案 > 计算 Dataframe 中所有列的唯一值组合

问题描述

我想找到我的数据框中所有列的唯一值的计数。

我的数据框中有 400 多列,我尝试了以下方法:

code:dfi.groupby([column names]).size().to_frame('count').reset_index()

但我不断收到以下错误:

Length of passed values is 4462, index implies 0

我怎样才能解决这个问题?

标签: pythonpandas

解决方案


第 1 步:创建随机数据框。

df = pd.DataFrame({'x1': ['A','B','A','A','B','A','A','A','B'], 'x2': [1,3,2,2,3,1,2,3,3], 'x3': [1,0,2,2,3,1,2,3,0], 'x4':[1,0,2,1,3,1,2,3,0]})
print(df)
  x1  x2  x3  x4
0  A   1   1   1
1  B   3   0   0
2  A   2   2   2
3  A   2   2   1
4  B   3   3   3
5  A   1   1   1
6  A   2   2   2
7  A   3   3   3
8  B   3   0   0

第 2 步:计算唯一行

df['count'] = df.groupby(list(df.columns))[list(df.columns)[0]].transform('count')
df=df.drop_duplicates().reset_index().drop(['index'],axis=1)
print(df)
  x1  x2  x3  x4  count
0  A   1   1   1      2
1  B   3   0   0      2
2  A   2   2   2      2
3  A   2   2   1      1
4  B   3   3   3      1
5  A   3   3   3      1

推荐阅读