从dataframe列中提取每个值的唯一值和出现次数

时间:2015-12-09 12:23:47

标签: python pandas

我正在尝试从一个数据框列中提取每个唯一条目的数量,并将其存储为新的数据框,如下所示:

输入

sample_name
    sample1
    sample2
    sample2
    sample3
    sample3
    sample3

所需的输出

sample_name  count
    sample1      1
    sample2      2
    sample3      3

修改 我猜这是因为没有显示我尝试过的东西而被推崇,所以对于可能发现自己处于相同情况的其他用户来说,这就是我停滞不前的地方:

鉴于输入数据框,我能够提取唯一条目:

input_df["sample_name"].unique()  # ['sample1', 'sample2', 'sample3']

出现次数(不是每个唯一条目):

input_df.groupby("sample_name")["sample_name"].transform("count")

输出

0    1
1    2
2    2
3    3
4    3
5    3

我没想到的是如何提取每个唯一条目的计数。

2 个答案:

答案 0 :(得分:2)

您想要value_counts

In [142]:
df['sample_name'].value_counts()

Out[142]:
    sample3    3
    sample2    2
    sample1    1
Name: sample_name, dtype: int64

答案 1 :(得分:0)

您也可以在python中使用collections模块中的宝贵Counter类来做到这一点:

from collections import Counter
Counter(df['sample_name'])

这将返回带有sample_name键和出现次数作为值的字典。