Pandas数据帧中每列的每个值的唯一值

时间:2018-02-15 14:09:38

标签: python pandas dataframe

如何使用for循环获取pandas数据框中每列的每个值的唯一值:

以下代码为每列提供了每个唯一值的计数,但我也想要这些值。

import pprint

col_uni_val={}
for i in data.columns:
    col_uni_val[i] = len(data[i].unique())

pprint.pprint(col_uni_val)

例如:

A  B
1  4
1  4
2  6
2  6
2  6
3  6

我希望输出为:

A:
1 - 2
2 - 3
3 - 1

B:
4 - 2
6 - 4

此外,由于我的列数很大,我可以使用索引循环来执行此操作。

1 个答案:

答案 0 :(得分:1)

演示:

In [351]: d
Out[351]:
   A  B
0  1  4
1  1  4
2  2  6
3  2  6
4  2  6
5  3  6

In [352]: res = {col:d[col].value_counts() for col in d.columns}

In [353]: res['A']
Out[353]:
2    3
1    2
3    1
Name: A, dtype: int64

In [354]: res['B']
Out[354]:
6    4
4    2
Name: B, dtype: int64