熊猫:计算行均值并将值添加到新数据框

时间:2020-06-01 15:45:11

标签: python pandas dataframe

我的数据框如下:

df3 = pd.DataFrame()

我要在其中添加/插入相同大小的其他数据框。

最初,我创建了一个带有零的numpy数组,并将其添加到数据帧中,因为如果没有这样做,我会得到一个错误,因此我将其作为解决方法(另一个讨论点):

table = np.zeros(11)
df3.insert(len(df3.columns),"blablablabla",table)

然后,在一个for循环中,我想从df1中过滤其中clusterLabel具有特定值(numberOfUniqueClasses = 0,1,2,3)的行,计算每列的均值并将它们相加值df3。这是我的代码:

for i in range(numberOfUniqueClasses):
   df2 = df1.query('clusterLabel == @i')
   df3.insert(len(df3.columns), i, pd.DataFrame(df2.mean(axis=0)))

df1如下:

           0           1           2  ...          8  clusterLabel  clusterWeight
0  43.000000   -0.333333   91.333333  ...  11.333333           0.0            3.0
1  54.500000    4.000000   79.000000  ...  43.000000           2.0            2.0
2  40.400000    0.400000   85.600000  ...   8.800000           1.0            5.0
3  37.000000 -318.000000  105.000000  ...   0.000000           2.0            1.0
4  48.333333    1.000000   82.000000  ...   0.666667           1.0            3.0

这里是一个问题:代码执行没有问题,但是当我在for循环外打印df3时,我得到以下信息:

                  0
0              44.0
1               3.0
2              77.0
3               0.0
4              44.0
5               2.0
6              33.0
7              33.0
8               0.0
clusterLabel    3.0
clusterWeight   1.0

它仅保留clusterLabel == 3所在行的平均值。

我在这里想念什么?

0 个答案:

没有答案