首页 > 解决方案 > 熊猫。通过...分组。切。间隔索引。在数据框中生成并应用于另一个

问题描述

我正在尝试基于数据帧(df_one)生成间隔索引,然后在另一个数据帧(df_two)中添加一列,使用该间隔对其值进行分类。困难在于我正在使用groupby。

我有这个,只有一个数据框

df_one['bins'] = df_one.groupby(category)[value].transform(lambda x: pd.cut(x, bins = breaks_maker(x),precision=2).astype(str))

我想做的是保存上面代码中生成的间隔,以将它们传递到另一个“bins” pd.cut 应用于另一个数据帧,也可以通过 groups

数据框一会像:

在此处输入图像描述

所需的输出(我把“等”而不是间隔,因为我没有从 df_one 生成它们,但输出应该类似于/类似于第一行)

在此处输入图像描述

任何帮助都会很棒!

如果需要,“breaks_maker”是生成间隔的函数:

def breaks_maker(x):
 iq = (x.quantile(.75) - x.quantile(.25)) * 1.5
 limites = np.array([min(- 999999999, (x.quantile(.25) - iq)),
               x.quantile(.25) - iq,
               x.quantile(.25),
               x.quantile(.75),
               x.quantile(.75) + iq,
               max(9999999999, (x.quantile(.75) + iq))
               ])
 if x.drop_duplicates().shape[0] < 5:
    return(5)
 else:
    return(pd.IntervalIndex.from_breaks(limites))

标签: pythonpandaspandas-groupbyintervals

解决方案


推荐阅读