Pandas 熊猫:按自定义概率函数分组的对象样本?

Pandas 熊猫:按自定义概率函数分组的对象样本?,pandas,dataframe,sample,Pandas,Dataframe,Sample,由于有些复杂的原因,我需要从pandas数据帧中进行采样,在该数据帧中,我通过一个特定变量call_id进行分组,然后将一些逻辑应用于给定的变量num_days(即调用经过后的天数) 一般来说,我想使用~负指数方案,其中天数越高,对行进行采样的概率越低。下面是一个函数来说明我的采样方案: 将numpy导入为np 将matplotlib.pyplot作为plt导入 span=[i代表范围(1,31)内的i] x=[1/(1+np.log(i))表示跨度中的i] 随机输入 def取样器(天): 权重

由于有些复杂的原因,我需要从pandas数据帧中进行采样,在该数据帧中,我通过一个特定变量call_id进行分组,然后将一些逻辑应用于给定的变量num_days(即调用经过后的天数)

一般来说,我想使用~负指数方案,其中天数越高,对行进行采样的概率越低。下面是一个函数来说明我的采样方案:

将numpy导入为np
将matplotlib.pyplot作为plt导入
span=[i代表范围(1,31)内的i]
x=[1/(1+np.log(i))表示跨度中的i]
随机输入
def取样器(天):
权重=[选择器[天]表示天,以天为单位]
硬币翻转=[随机。均匀(0,1)表示范围内的i(len(天))]
如果重量[i]>=硬币翻转[i]],则样本=范围内i的[i]天(len(天)]
返回样品
天数=[i代表范围(1,31)内的i]
采样器(天)
>>> 
[1, 2, 3, 7, 9, 12, 17, 24, 25, 26]
如该函数所示,最接近0的数字具有最高的采样概率,并且概率衰减是平滑的

我遇到的问题是,将此函数合并到
groupby
sample
方法中,我引用了一个半类似的问题

假设数据帧:

df=pd.DataFrame({'days':[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
“类”:[1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3],
“值”:[1,1,1,0,1,1,0,1,0,0,0,1,0,0]})
​
grouped=df.groupby('class'))
分组。应用(λx:x.样本(取样器(天)))
显然,这是行不通的;我对前进的最佳道路感到困惑。有什么建议吗?

您混淆了采样器(函数)作为采样参数(每个x上的函数)。示例参数可以是(分形=…)。你能分享一下你的预期结果吗。