Python 如何循环遍历每个索引并计算每个组的顺序统计信息

Python 如何循环遍历每个索引并计算每个组的顺序统计信息,python,pandas,loops,group-by,Python,Pandas,Loops,Group By,我有一个名为dta_filter的数据框,主要变量是[20,25]中的LogEarn for AgeInDays。有16个组用于YRSSCH,范围为0,1,…,15。下面的图片显示了数据框的摘录 我的目标如下。我将使用输出数据帧(下图)中的索引(0,0.1)观察作为示例。首先,我需要从计数数组(下图)中提取对应于0的值。在这种情况下,值为758。接下来,我需要计算表达式j=floor(758*0.1-1.96),其中floor()表示floor函数。最后,我需要计算[20,25]中AgeInDa

我有一个名为
dta_filter
的数据框,主要变量是[20,25]中的
LogEarn for AgeInDays
。有16个组用于
YRSSCH
,范围为0,1,…,15。下面的图片显示了数据框的摘录

我的目标如下。我将使用
输出
数据帧(下图)中的索引(0,0.1)观察作为示例。首先,我需要从
计数
数组(下图)中提取对应于0的值。在这种情况下,值为758。接下来,我需要计算表达式j=floor(758*0.1-1.96),其中floor()表示floor函数。最后,我需要计算[20,25]中AgeInDays的
LogEarn的j阶统计量,该统计量对应于dataframe
dta\U filter
YRSSCH=0
的组,并在dataframe
output
的新列中输出该值(与(0,0.1)在同一行中),并调用列
下限

我需要对
output
中的所有索引值执行上述操作。因此,为了进一步说明,例如,对于
output
中的(1,0.5)索引,表达式j将是j=floor(202*0.5-1.96)由于202是与
计数
数组中的1相对应的值,它乘以0.5,因为0.5是(1,0.5)中的第二个数字。然后,我需要计算[20,25]中年龄天数的
对数的j阶统计量
对应于
YRSSCH=1的组
(注意,该组由数据帧
dta_filter
中(1,0.5))中的第一个数字指示,然后将该值输出到数据帧
output
下限列中,并与(1,0.5)位于同一行

下面的代码一次只执行一个。例如,对于(0,0.1)索引:

注意:在上面的代码中,k的表达式中有一个-1,因为代码
np.partition(np.asarray(x),k)[k]
从0而不是从1索引一阶统计量

如何对
输出中的所有索引执行上述操作
?我只是python的初学者,也许循环可以工作

这是我关于堆栈溢出的第一篇文章,如果我的问题不够清楚,请让我知道,我将编辑进一步解释


我不完全清楚您想做什么,但我认为您应该查看pandas
apply
。请参阅。请注意,根据您是否要跨行或列应用,您需要相应地设置
轴。
k=math.floor(counts[0]*0.1-l)-1

x=dta_filter[(dta.YRSSCH==0)][['LogEarn for AgeInDays in [20, 25)']]

x=x['LogEarn for AgeInDays in [20, 25)'].tolist()

lower_bound=np.partition(np.asarray(x), k)[k]