gpt4 book ai didi

python - 从其他数据帧特定行中减去数据帧行

转载 作者:行者123 更新时间:2023-12-01 04:10:03 25 4
gpt4 key购买 nike

我在每一行都有一个数据帧df,我有一些想要进行减法的列,columns_to_sub,一些名为“absorb”的标签列以及一些我想要的列不想改变。我想用另一个数据帧上并由标签“absorb”索引的行减去 columns_to_sub 的值。这是我想要的一个非功能性示例:

import pandas as pd
import numpy as np
data = np.hstack((np.random.randint(0,10,20).reshape(-1,1),np.random.rand(20,3)))
df = pd.DataFrame(data,columns=['absorb','a','b','c'])
columns_to_sub = ['a','b']

means = df.groupby('absorb')[columns_to_sub].mean()
#This result is not what I want, because the subtraction is strange
df[columns_to_sub] = df[columns_to_sub] - means.loc[df.absorb,columns_to_sub]

如何修复此代码?

最佳答案

你们离得很近。只需在means上使用values即可。

df[columns_to_sub] = df[columns_to_sub] - means.loc[df.absorb,columns_to_sub].values
>>> df
absorb a b c
0 2 -0.060540 -0.270233 0.416213
1 9 0.597084 0.136158 0.415023
2 1 -0.131393 -0.535288 0.158465
3 3 0.282902 -0.008801 0.872598
4 9 -0.236306 -0.337588 0.297589
5 6 0.000000 0.000000 0.283559
6 3 0.022021 -0.110693 0.671295
7 7 0.042000 -0.327157 0.736395
8 1 0.097912 0.119899 0.409241
9 1 -0.460052 0.280302 0.341200
10 1 0.002855 -0.013902 0.648113
11 1 0.490679 0.148989 0.626300
12 8 0.000000 0.000000 0.986039
13 3 -0.304923 0.119494 0.553210
14 0 0.000000 0.000000 0.626576
15 5 0.000000 0.000000 0.105102
16 2 -0.166760 -0.122624 0.750912
17 2 0.227300 0.392857 0.498822
18 7 -0.042000 0.327157 0.323361
19 9 -0.360778 0.201430 0.521043

关于python - 从其他数据帧特定行中减去数据帧行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35068548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com