pandas python 如何统计数据帧或行的记录数

25 浏览
0 Comments

pandas python 如何统计数据帧或行的记录数

显然我对Pandas是新手。我该如何简单地计算数据框中记录的数量。

我本以为这么简单的事应该很容易,但我似乎找不到答案......可能是因为它太简单了。

cnt = df.count
print cnt

上面的代码实际上只打印了整个数据框。

admin 更改状态以发布 2023年5月20日
0
0 Comments

关于你的问题......计算一个字段?我决定把它作为一个问题,但希望能帮到你......

假设我有以下的数据框:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.normal(0, 1, (5, 2)), columns=["A", "B"])

你可以通过下面的方式计算单一列:

df.A.count()
#or
df['A'].count()

两种方法都会得出结果为5。

很酷的一点是(或者在pandas中大量使用),如果你有缺失值NAcount函数也会把它考虑在内。

所以,如果我这样做:

df['A'][1::2] = np.NAN
df.count()

结果将会是这样的:

 A    3
 B    5

0
0 Comments

要获取dataframe中行的数量,请使用:

df.shape[0]

(使用df.shape[1]获取列的数量)。

作为替代方案,您可以使用

len(df)

len(df.index)

(使用len(df.columns)获取列)

shapelen()更灵活和更方便,特别是对于交互式工作(只需在末尾添加即可),但len要快一些(请参见此答案)。

避免使用count(),因为它返回请求轴上非NA/null观察值的数量

len(df.index)更快

import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(24).reshape(8, 3),columns=['A', 'B', 'C'])
df['A'][5]=np.nan
df
# Out:
#     A   B   C
# 0   0   1   2
# 1   3   4   5
# 2   6   7   8
# 3   9  10  11
# 4  12  13  14
# 5 NaN  16  17
# 6  18  19  20
# 7  21  22  23
%timeit df.shape[0]
# 100000 loops, best of 3: 4.22 µs per loop
%timeit len(df)
# 100000 loops, best of 3: 2.26 µs per loop
%timeit len(df.index)
# 1000000 loops, best of 3: 1.46 µs per loop

df.__len__ 只是调用len(df.index)

import inspect 
print(inspect.getsource(pd.DataFrame.__len__))
# Out:
#     def __len__(self):
#         """Returns length of info axis, but here we use the index """
#         return len(self.index)

为什么您不应该使用count()

df.count()
# Out:
# A    7
# B    8
# C    8

0