熊猫多索引系列处理

时间:2018-07-31 04:28:22

标签: python pandas pandas-groupby multi-index

我在原始DataFrame上从a.groupby()获得了一个熊猫2索引系列:

label  ncsc
False  0       297
       1       537
       2       333
       3       207
       4        51
       5        12
       6         4
       7         2
True   0        29
       1        68
       2        35
       3        29
       4        35
       5        18
       6         8
       7         2
Name: ncsc, dtype: int64

我希望能够为每个'ncsc'计算真实率,即对于'ncsc'= 6,真实率= 8 /(4 + 8)= 0.66。 您看到不使用循环而是使用“ pandas语法”的方法了吗?

谢谢

2 个答案:

答案 0 :(得分:2)

假装您使用数字:

s[True] / (s[True] + s[False])
#0    0.088957
#1    0.112397
#2    0.095109
#3    0.122881
#4    0.406977
#5    0.600000
#6    0.666667
#7    0.500000

答案 1 :(得分:0)

IIUC

f = lambda s,v: s[s.index.get_level_values(0) == v].to_frame().reset_index('index', drop=True)

tru = f(s, True)
fal = f(s, False)
(tru)/(tru+fal)

      ncsc
label   
0     0.088957
1     0.112397
2     0.095109
3     0.122881
4     0.406977
5     0.600000
6     0.666667
7     0.500000
相关问题