计算 pandas 中的非空值 [英] Count non-null values in pandas
本文介绍了计算 pandas 中的非空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有数据框
site1 time1 site2 time2 site3 time3 site4 time4 site5 time5 ... time6 site7 time7 site8 time8 site9 time9 site10 time10 target
session_id
21669 56 2013-01-12 08:05:57 55.0 2013-01-12 08:05:57 NaN NaT NaN NaT NaN NaT ... NaT NaN NaT NaN NaT NaN NaT NaN NaT 0
54843 56 2013-01-12 08:37:23 55.0 2013-01-12 08:37:23 56.0 2013-01-12 09:07:07 55.0 2013-01-12 09:07:09 NaN NaT ... NaT NaN NaT NaN NaT NaN NaT NaN NaT 0
77292 946 2013-01-12 08:50:13 946.0 2013-01-12 08:50:14 951.0 2013-01-12 08:50:15 946.0 2013-01-12 08:50:15 946.0 2013-01-12 08:50:16 ... 2013-01-12 08:50:16 948.0 2013-01-12 08:50:16 784.0 2013-01-12 08:50:16 949.0 2013-01-12 08:50:17 946.0 2013-01-12 08:50:17 0
114021 945 2013-01-12 08:50:17 948.0 2013-01-12 08:50:17 949.0 2013-01-12 08:50:18 948.0 2013-01-12 08:50:18 945.0 2013-01-12 08:50:18 ... 2013-01-12 08:50:18 947.0 2013-01-12 08:50:19 945.0 2013-01-12 08:50:19 946.0 2013-01-12 08:50:19 946.0 2013-01-12 08:50:20 0
我需要计算N列,其中站点!= NaN. 我尝试使用
I need to count N of columns, where site != NaN. I try to use
df[['site%s' % i for i in range(1, 11)]].count(axis=1)
但它会向我返回10个ID
but it returns me 10 to every id
我也尝试过
train_df[sites].notnull().count(axis=1)
它也没有帮助.
期望输出
21669 2
54843 4
77292 10
114021 10
推荐答案
我只需要count
:
train_df[sites].count(axis=1)
count
专门计算非空值.当前实现的问题是notnull
会产生布尔值,而bool
肯定不是空的,这意味着它们总是被计数.
count
specifically counts non-null values. The issue with your current implementation is that notnull
yields boolean values, and bool
s are certainly not-null, meaning they are always counted.
df
one two three four five
a -0.166778 0.501113 -0.355322 bar False
b NaN NaN NaN NaN NaN
c -0.337890 0.580967 0.983801 bar False
d NaN NaN NaN NaN NaN
e 0.057802 0.761948 -0.712964 bar True
f -0.443160 -0.974602 1.047704 bar False
g NaN NaN NaN NaN NaN
h -0.717852 -1.053898 -0.019369 bar False
df.count(axis=1)
a 5
b 0
c 5
d 0
e 5
f 5
g 0
h 5
dtype: int64
然后...
df.notnull().count(axis=1)
a 5
b 5
c 5
d 5
e 5
f 5
g 5
h 5
dtype: int64
这篇关于计算 pandas 中的非空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文