将索引用作数据帧中等式的变量

2024-09-28 03:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

def linear_rank_selection(popRanked):   
selectionResults = []
n = len(popRanked)

df = pd.DataFrame(np.array(popRanked), columns=["A","B"])
df['Probability'] = 2*(n- df.index+1 )/(n*(n-1))*100

如何使用索引号作为变量来创建概率列?基于probability formula,而j是索引号


Tags: columns代码dataframedflendefnparray
1条回答
网友
1楼 · 发布于 2024-09-28 03:25:33

我认为这里的问题是当我们尝试进行除法时RangeIndex。尝试将索引转换为numpy:

popRanked = [(100, 50), (215, 3) , (500,4)]
n = len(popRanked)
df = pd.DataFrame(np.array(popRanked), columns=["A","B"])
df['Probability'] = 2*(n- df.index.to_numpy()+1 )/(n*(n-1))*100

print(df)
     A   B  Probability
0  100  50   133.333333
1  215   3   100.000000
2  500   4    66.666667

我们也可以用df.index.values代替df.index.to_numpy()

相关问题 更多 >

    热门问题