我正在尝试计算几列中的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,但无法获得正确的输出。有任何想法吗 ?谢谢大家!
答案 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