对数据帧的每个单元格进行计算



我有两个数据帧。

数据1 =

Variables   A_0      B_0
Bins                                    
1           200      100
2           100      150
3           100      300
4           100      200
5           150      100 

数据2 =

Variables   A_1      B_1
Bins                                    
1           50       100
2           100      150
3           50       50
4           100      200
5           100      100 

现在我想创建一个数据帧,给出data2单元格值的百分比,比如对于A_1,Bins = 1有50个值,对于A_0,Bins=1有200个值,所以百分比变成(50/(200+50)) = 0.2

所以我想要的最终数据帧如下所示。

data2_perc =

Variables   A_1_perc      B_1_perc
Bins                                    
1           0.2           0.5
2           0.5           0.5
3           0.33          0.1428
4           0.5           0.5
5           0.4           0.5

怎么做?

data2_perc = pd.DataFrame()
data2_perc['A_1_perc'] = data2['A_1']/(data2['A_1']+data1['A_0'])
data2_perc['B_1_perc'] = data2['B_1']/(data2['B_1']+data1['B_0'])

结果:

A_1_perc    B_1_perc
1   0.200000    0.500000
2   0.500000    0.500000
3   0.333333    0.142857
4   0.500000    0.500000
5   0.400000    0.500000

IIUC,

创建空数据框

data2_perc=pd.DataFrame()

然后使用以下代码获取所需的输出

data2_perc['A_1_perc']=data2['A_1']/(data2['A_1']+data1['A_0'])
data2_perc['B_1_perc']=data2['B_1']/(data2['B_1']+data1['B_0'])

您可以renamedata1sumdivide和最后添加DataFrame.add_suffix列:

d = dict(zip(data1.columns,data2.columns))
df = (data2 / (data1.rename(columns=d) + data2)).add_suffix('_perc')
print (df)
A_1_perc  B_1_perc
Variables                    
1          0.200000  0.500000
2          0.500000  0.500000
3          0.333333  0.142857
4          0.500000  0.500000
5          0.400000  0.500000

相关内容

最新更新