我的资料:

LogRatio    Strength
 0.555         9.1
 0.542         9.6
 0.533         9.7
 0.532         9.3
 0.519         9.2
 0.508         9.5


我想得到我的组indexA-indexB的中位数(pointRatio,Strength)

indexA = 0
indexB = 4
point_logRatio = df['LogRatio'][indexA:indexB].median()
point_Strength = df[df['LogRatio']==point_logRatio['Strength'].iloc[0]


但是我不想用值来计算中位数,我只想让行的索引获取LogRatio和相应的强度。因为point_logRatio计算中位数,而不是只给我一行。
这就是为什么我的point_Strength不起作用的原因,因为计算的中位数与数据框的值不匹配。

因此,如果您有一种更简单的方法同时获得LogR​​atio和强度,而LogRatio处于我的数据帧中indexA和indexB之间的中间位置,那么谢谢。

最后,我想拥有:
点=(0.533,9.7)

因为0.533是我数据框中我的索引0和4之间的中位数位置的logRatio,因此对应的强度是9.7。

最佳答案

你可以试试

median_position = (indexA+indexB)/2
point_logRatio  = df.iloc[median_position]['LogRatio']
point_Strength  = df.iloc[median_position]['Strength']

关于python - Pandas 指数中位数而不是值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40915796/

10-12 21:23