比较dataframe中标记数据的平均值

2024-10-03 19:27:18 发布

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

假设我的数据框

 Name  Num Label
0   K    10    0
1   K    21    0 
2   K    31    0
3   K    41    1
4   Y    9     0
5   Y    19    0
6   Y    14    1
7   B    33    0
8   B    43    0    
9   B    77    1
10  B    89    1

我希望看到标记为0的数据和标记为1的数据的平均值的增长率

ex

K - label 0, mean = 20.67
K - label 1, mean = 41

所以,increased rate = (41-20.67) / 20.67 * 100 = 93.81%

可以将其添加到新列或生成新数据帧。有没有可能的办法

*上升率是一个例子,如果标记为0的数据的平均值较大,则该值应为-(减)值

谢谢你的阅读


Tags: 数据name标记ratemeannumlabel例子
1条回答
网友
1楼 · 发布于 2024-10-03 19:27:18

^{}与默认函数mean一起使用,然后进行减法和除法:

df1 = (df.pivot_table(index='Name',columns='Label', values='Num')
         .rename(columns={0:'mean_before',1:'mean_after'}))
df1['new'] = df1['mean_after'].sub(df1['mean_before']).div(df1['mean_before']).mul(100)
print (df1)
Label  mean_before  mean_after         new
Name                                      
B        38.000000        83.0  118.421053
K        20.666667        41.0   98.387097
Y        14.000000        14.0    0.000000

相关问题 更多 >