python pandas groupby:key1的key2值的百分比

gus*_*gus 0 python pandas

我有一个数据帧,我用两个键对它进行分组df.groupby(['key1',key2']).对于每个key2条目,如何显示其key1值的百分比?

Zel*_*ny7 6

这是使用一个groupby语句的替代方法.

按k1分组,选择列k2并应用lambda函数.拉姆达获取频率计数K2的每一层 K1,然后我们通过K1的计分:

In [1]: df.groupby('k1')['k2'].apply(lambda x: pd.value_counts(x)/x.count().astype(float))

Out[1]:
k1
a   x    0.500000
    y    0.500000
b   y    0.666667
    x    0.333333
Run Code Online (Sandbox Code Playgroud)

性能:

HYRY的方法:

100 loops, best of 3: 3.07 ms per loop
Run Code Online (Sandbox Code Playgroud)

我的方法:

1000 loops, best of 3: 1.98 ms per loop
Run Code Online (Sandbox Code Playgroud)