python - 熊猫。通过...分组。切。间隔索引。在数据框中生成并应用于另一个
问题描述
我正在尝试基于数据帧(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))
解决方案
推荐阅读
- vim - 如何在vim中按数字在缓冲区之间切换
- javascript - 如何在javascript中找到parant div top到child div top之间的高度?
- sql-server - 安装 sql 2017 失败
- sql - Google BigQuery 按总和分组并跟踪最新行的行号和 IF 条件
- kubernetes - 无法将 elgalu/selenium 和 dosel/zalenium 图像拉入我的 Kubernestes 集群
- c# - 像地铁冲浪游戏一样流畅的相机控制?
- javascript - 检查未定义和长度更短的替代方案
- java - 有没有办法从 kinesis 中消费样本记录?
- ffmpeg - 加快Android中的FFmpeg处理时间
- android-jetpack - 如何在 Fragment 目标中添加 NavHostFragment?