我有一个数据帧,我用两个键对它进行分组df.groupby(['key1',key2']).对于每个key2条目,如何显示其key1值的百分比?
这是使用一个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)
| 归档时间: |
|
| 查看次数: |
1425 次 |
| 最近记录: |