我正在尝试将一组事物进行分组,并根据(最小值和最大值)值的最小值,最大值和平均值在组内动态执行剪切。

我的数据集看起来像这样:

Country     Value
Uganda       210
Kenya        423
Kenya        315
Tanzania     780
Uganda       124
Uganda       213
Tanzania     978
Kenya        524


我期望的是每个值在哪个范围内,高于或低于中间值:

Country      Value        Range
Uganda        210        (168.5, 213)
Uganda        124        (124, 168.5)
Uganda        213        (168.5, 213)
Kenya         423        (419.5, 524)
Kenya         315        (315, 419.5)
Kenya         524        (419.5, 524)
Tanzania      780        (780, 879)
Tanzania      978        (879, 980)


如果我通过遍历每个组的循环来做到这一点,那么我就能实现这一目标。我还能够基于整个数据集(而不是单个组)的最小值和最大值实现削减。但是,我想知道是否可以使用熊猫在一两行中完成而不使用循环。

最佳答案

尝试这个;

data['Range'] = data.groupby('Country').Value.apply(pd.cut, bins=2)

关于python - GroupBy和Cut in Pandas,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50249880/

10-08 22:46