如何计算熊猫中Multiindex的正确与错误?

时间:2018-07-04 04:39:20

标签: python python-3.x pandas count multi-index

我在熊猫中使用多索引。

示例1:

'info'       '2002'     '2003'     '2004'
'PID' 'Age'  't1' 't2'  't1' 't2'  't1' 't2'
 101   30     Nan  2     2    1     Nan  Nan
 102   28     2    5     1    Nan   10   100   

我想知道其中一件值得拥有的东西。

[num]和[num]为True

[Nan]和[num]为True

[Nan]和[Nan]是错误的

Example2:

'info'       
'PID' 'Age' 'count' 
 101   30      2
 102   28      3

所以我认为使用any(),但是我没有解决。

1 个答案:

答案 0 :(得分:2)

我认为如果MultiIndex也在索引中首先检查所有值notna,然后在列的第一级MultiIndex中至少检查DataFrameGroupBy.any并最后计数{{1 }}个True

sum

如果索引中没有print (df.index) MultiIndex(levels=[[101, 102], [28, 30]], labels=[[0, 1], [1, 0]]) df = df.notna().groupby(axis=1, level=0).any().sum(axis=1) #oldier pandas versions #df = df.notnull().groupby(axis=1, level=0).any().sum(axis=1) ,则添加drop删除MultiIndex级:

info

如果需要按位置创建列,请使用insert

print (df.index)
RangeIndex(start=0, stop=2, step=1)

s = df.drop('info', level=0, axis=1).notnull().groupby(axis=1, level=0).any().sum(axis=1)
print (s)
0    2
1    3
dtype: int64