我在原始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语法”的方法了吗?
谢谢
答案 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