使用公式将行添加到数据帧

2024-06-25 22:43:54 发布

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

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

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


Tags: 数据dataframedataa1v2pdx2set
1条回答
网友
1楼 · 发布于 2024-06-25 22:43:54

以下是一种方法:

# 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]

相关问题 更多 >