我的数据框如下:
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
所在行的平均值。
我在这里想念什么?