何时在Pandas中使用.count()和.value_counts()?

时间:2019-04-03 11:25:50

标签: python pandas

我正在学习熊猫。我不确定何时使用.count()函数以及何时使用.value_counts()

3 个答案:

答案 0 :(得分:1)

value_counts()汇总数据并计算每个唯一值。您可以通过使用groupby来实现相同目的,count()是一种更广泛的功能,可以在熊猫中聚合数据。

df = pd.DataFrame({'Id':['A', 'B', 'B', 'C', 'D', 'E', 'F', 'F'], 'Value':[10, 20, 15, 5, 35, 20, 10, 25]}) print(df) Id Value 0 A 10 1 B 20 2 B 15 3 C 5 4 D 35 5 E 20 6 F 10 7 F 25 # Value counts df['Id'].value_counts() F 2 B 2 C 1 A 1 D 1 E 1 Name: Id, dtype: int64 # Same operation but with groupby df.groupby('Id')['Id'].count() Id A 1 B 2 C 1 D 1 E 1 F 2 Name: Id, dtype: int64 # Count() df['Id'].count() 8 只需返回对其应用的列(系列)中非NaN / Null值的数量。

NaN

示例,其中包含count个值和print(df) Id Value 0 A 10 1 B 20 2 B 15 3 NaN 5 4 D 35 5 E 20 6 F 10 7 F 25 df['Id'].count() 7

public class Test
{
    public int val ;
    private Test(int sent)
    {
        val=val +sent;
    }
    public static void Callme(int  GetVal)
    {
        Test obj=new Test(GetVal);
        Console.WriteLine(obj.val);
    }
}
public class Program
{
    public static void Main()
    {       
        Test.Callme(10);
        //Console.WriteLine(Test.val);
        Test.Callme(20);
        //Console.WriteLine(Test.val);
    }
}

答案 1 :(得分:1)

count()用于对给定轴上的非NA /空观测值进行计数。它也适用于非浮动类型的数据。

现在作为示例,创建一个数据框df

df = pd.DataFrame({"A":[10, 8, 12, None, 5, 3],  
                   "B":[-1, None, 6, 4, None, 3], 
                   "C":["Shreyas", "Aman", "Apoorv", np.nan, "Kunal", "Ayush"]})

在整个行轴上查找非NA值的计数。

df.count(axis = 0)

输出:

A    5
B    4
C    5
dtype: int64

在整个列中查找非NA /空值的数量。

df.count(axis = 1) 

输出:

0    3
1    2
2    3
3    1
4    2
5    3
dtype: int64    

value_counts()函数返回包含唯一值计数的Series。生成的对象将按降序排列,以便第一个元素是最频繁出现的元素。默认情况下不包括NA值。

所以对于下面显示的示例

s = pd.Series([3, 1, 2, 3, 4, np.nan]) 
s.value_counts()

输出为:

3.0    2
4.0    1
2.0    1
1.0    1
dtype: int64

答案 2 :(得分:0)

count()返回序列中非空值的总数。

value_counts()返回一系列每个唯一的非空值出现的次数,从最频繁到最不频繁。

像往常一样,一个例子是传达这一点的最佳方法:

ser = pd.Series(list('aaaabbbccdef'))
ser

>
0     a
1     a
2     a
3     a
4     b
5     b
6     b
7     c
8     c
9     d
10    e
11    f
dtype: object

ser.count()
>
12

ser.value_counts()
>
a    4
b    3
c    2
f    1
d    1
e    1
dtype: int64 

请注意,数据框具有count()方法,该方法为df中的每一列返回一系列count()(标量)值。但是,数据框没有value_counts()方法。