我有一个pandas DataFrame。我想计算满足条件的行数。
数据有800行;data[data['cond'] == 1]
返回具有343行的框架。我需要将行数存储在一个变量中。我该怎么做?
如果我理解正确,您可以这样做:
a = len(data[data['cond'] == 1])
shape
方法:a = data[data['cond'] == 1].shape[0]
我尝试了时间测试,似乎在大型的 df
(长度为 60k
)中,两个选项都是相同的:
In [1399]: %timeit data[data['fld1'] == 1].shape[0]
100 loops, best of 3: 4.9 ms per loop
In [1400]: %timeit len(data[data['fld1'] == 1])
100 loops, best of 3: 4.91 ms per loop
我只会这样做
x = sum(data['cond'] == 1)
(data['cond']==1) 创建了一个由布尔值填充的Series对象,sum函数将True视为1,False视为0。
x = len(data[data['cond'] == 1])
也可以行,而且可能更易读,但我认为它会创建一个“data”中间切片。