如何使用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
此外,由于我的列数很大,我可以使用索引循环来执行此操作。
答案 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