熊猫,DataFrame的几列唯一值

时间:2019-01-27 12:56:57

标签: python-3.x pandas dataframe pandas-groupby

我正在尝试计算几列中的uniqiue值。我的数据框如下所示:

Name      Name.1    Name.2    Name.3
x         z          c          y
y         p          q          x
q         p           a         y

输出应如下所示:

x   2
z   1
c   1
y   3
q   2
p   2
a   1

我使用了groupby或count_values,但无法获得正确的输出。有任何想法吗 ?谢谢大家!

2 个答案:

答案 0 :(得分:2)

似乎您要考虑值,而不管其行或列的位置如何。在这种情况下,您应该折叠数据框并仅使用Counter。

from collections import Counter

arr = np.array(df)
count = Counter(arr.reshape(arr.size))

答案 1 :(得分:0)

另一种(Pandas-based)方法是(Series) apply value_counts to multiple columns,然后取和(按列)

df2 = df.apply(pd.Series.value_counts)
print(df2.sum(axis=1).astype(int)
a    1
c    1
p    2
q    2
x    2
y    3
z    1
dtype: int32