python - 使用公式将行添加到数据框

标签 python dataframe

我有一个如下所示的数据框:

data = pd.DataFrame({'Tissues':['a1','x2','y3','b','c1','v2','w3'], 'M':[1,2,3,4,5,6,7], 'F':[8,9,10,11,12,13,14]})
data = data.set_index('Tissues')

数据框是:

         M   F
Tissues       
a1       1   8
x2       2   9
y3       3  10
b        4  11
c1       5  12
v2       6  13
w3       7  14

还有两个字典:

wts_m1 = {'a1':0.5, 'x2':0.25, 'y3':0.25}
wts_m2 = {'c1':0.333, 'v2': 0.667}

我想向名为“m1”的数据帧添加一行,其中“M”的值由以下公式给出:1x0.5+2*0.25+3*0.25 F' 由 8x0.5+9*0.25+10*0.25 给出,其中 0.5、0.25 和 0.25 来自 wts_m1。

对于 m2 也类似,权重来自 wts_m2。

最佳答案

这里有一个方法:

# calculate values
M = (data.index.map(wts_m1) * data['M']).sum()
F = (data.index.map(wts_m1) * data['F']).sum()

# create the row as df    
sr = pd.DataFrame({'M': [M,],'F': [F,]}, index=['m1'])

# join data
pd.concat([data, sr], axis=0)

a1  1.00   8.00
x2  2.00   9.00
y3  3.00  10.00
b   4.00  11.00
c1  5.00  12.00
c2  6.00  13.00
c3  7.00  14.00
m1  1.75   8.75

您还可以这样做:

data.loc['m1'] = [M, F]

关于python - 使用公式将行添加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59615905/

相关文章:

python - PySide Qt tr() 不翻译,translate() 做 - 上下文错误?

python - 如何在使用 groupby() 时忽略 pandas 数据框中具有唯一索引的几行?

python - 将字典转换为数据框,键作为列名,键的值作为数据框的列值

python - 如何用列表附加 Pandas 数据框?

python - 在 Python 3 中使用元类重新定义 __init__

python - 使用Python(Bash?)获取操作系统级别的系统信息(CPU速度)

python - 使用 Python 从多个文件夹中提取所有文件

python - 获取二维数组的非零元素的索引

python - 如何在Python中迭代一个数据帧的每一行并与另一个数据帧中的行进行比较?

python - 如何使用 haversine 距离矩阵返回满足距离阈值标准的所有点对