我有两个包含浮点值的数据框。
1.第一个是包含位置的1列 Dataframe 。
1.第二个是ncol和nrows的矩阵,ncol等于ID的数目,nrows等于第一 Dataframe 的nrow。
其思想是创建一个与第二个数据框大小相同的新数据框。它需要包含第一个数据框的每个值与第二个数据框中每列的每个值之间的等式。其思想是在传递到下一个数据框之前,它将迭代一列的每一行。
计算公式类似于df1 * df2 / len(df1)+1
示例数据:
df1 = pd.DataFrame([10,20,30,40,50,60], columns=['POS'])
df2 = pd.DataFrame({"ID1" : [0,2,4,6,8,10] , "ID2" :[1,3,5,7,9,11]})
final = pd.DataFrame({"ID1" : [0, 5.714285714, 17.14285714, 34.28571429, 57.14285714, 85.71428571] , "ID2" :[1.428571429, 8.571428571, 21.42857143, 40, 64.28571429, 94.28571429]})
我想嵌套循环应该是这样的,但是我还是不能得到正确的答案,我错过了什么?
final = pd.DataFrame([])
for i in list(range(0,len(df1))):
for j in list(range(0,len(df2))):
final.append(df2.iloc[i,j] * df1[0][i] / len(df1)+1)
在R中,答案是:
for (i in 1:nrow(df1)){
for (j in 1:ncol(df2)){
final[i,j] <- (df2[i,j] * df1[i,1]) / nrow(df1)+1
}
}
2条答案
按热度按时间umuewwlo1#
以一种 * Pandorable * 的方式,您可以使用
pandas.DataFrame.squeeze
和pandas.DataFrame.mul
来实现这一点:输出:
nqwrtyyt2#
明确用于
df1 * df2 / (len(df1) * df2)
计算: