大熊猫将相同系列附加到每列

海盗

考虑数据框 df

df = pd.DataFrame(np.random.rand(5, 3),
                  ['p0', 'p1', 'p2', 'p3', 'p4'],
                  ['A', 'B', 'C'])
df

df

以及每一行的均值:

dm = df.mean(1)
dm.index = ['m0', 'm1', 'm2', 'm3', 'm4']
dm

m0    0.352396
m1    0.606469
m2    0.643022
m3    0.560809
m4    0.776058
dtype: float64

如何将这一系列方法附加到的每一列df我希望结果看起来像:

在此处输入图片说明

而且,由于这将被大规模应用,因此时间至关重要。

我用来生成预期输出的是:

pd.concat([df, pd.DataFrame({c: dm for c, i in df.iteritems()})])

时间安排(小规模)

在此处输入图片说明

时间安排(大规模)

在此处输入图片说明

耶斯列尔

您可以使用double concat

print (pd.concat([dm] * df.shape[1], axis=1, keys=df.columns))
           A         B         C
m0  0.823788  0.823788  0.823788
m1  0.615354  0.615354  0.615354
m2  0.606740  0.606740  0.606740
m3  0.386629  0.386629  0.386629
m4  0.637147  0.637147  0.637147

print (pd.concat([df, pd.concat([dm] * df.shape[1], axis=1, keys=df.columns)]))
           A         B         C
p0  0.789966  0.699837  0.981560
p1  0.415609  0.469310  0.961144
p2  0.920938  0.476615  0.422665
p3  0.323782  0.805231  0.030874
p4  0.761674  0.361134  0.788632
m0  0.823788  0.823788  0.823788
m1  0.615354  0.615354  0.615354
m2  0.606740  0.606740  0.606740
m3  0.386629  0.386629  0.386629
m4  0.637147  0.637147  0.637147

要创建附加文件df,可以使用numpy repeatnumpy.newaxis

x = dm.values

print (pd.DataFrame(np.repeat(x[:, np.newaxis], df.shape[1], 1), 
                    columns=df.columns,
                    index=dm.index))
           A         B         C
m0  0.399837  0.399837  0.399837
m1  0.890191  0.890191  0.890191
m2  0.580747  0.580747  0.580747
m3  0.354032  0.354032  0.354032
m4  0.329108  0.329108  0.329108

print(pd.concat([df, pd.DataFrame(np.repeat(x[:, np.newaxis], df.shape[1], 1), 
                    columns=df.columns,
                    index=dm.index)]))

           A         B         C
p0  0.087337  0.375891  0.736282
p1  0.777897  0.932047  0.960629
p2  0.945546  0.062647  0.734047
p3  0.247740  0.582076  0.232282
p4  0.078683  0.869736  0.038905
m0  0.399837  0.399837  0.399837
m1  0.890191  0.890191  0.890191
m2  0.580747  0.580747  0.580747
m3  0.354032  0.354032  0.354032
m4  0.329108  0.329108  0.329108    

编辑1:

为创造新的另一种解决方案dfnumpy.tile

dm2 = pd.DataFrame(np.tile(dm.values[:, None], (1, df.shape[1])), dm.index, df.columns)
df.append(dm2)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

大熊猫将相同系列附加到每列

来自分类Dev

大熊猫没有附加到df,因为它应该在每一行迭代中附加

来自分类Dev

大熊猫相交系列

来自分类Dev

大熊猫:合并具有相同列名的大熊猫列

来自分类Dev

Python大熊猫夹杂字符串,添加行,每列各不相同

来自分类Dev

大熊猫冷凝多列相同的价值

来自分类Dev

大熊猫在巨大的csv的每一列中找到许多独特元素

来自分类Dev

大熊猫在巨大的csv的每一列中找到许多独特的元素

来自分类Dev

如何将大熊猫系列以行而不是列的形式写入CSV?

来自分类Dev

将大熊猫“对数组系列”转换为“两列DataFrame”?

来自分类Dev

大熊猫,根据列中的层次结构值附加数据

来自分类Dev

透视大熊猫数据并添加列

来自分类Dev

计算日期的大熊猫列清单

来自分类Dev

大熊猫保存的元组的值列

来自分类Dev

从左到右填充大熊猫列

来自分类Dev

大熊猫从列列表分配结果

来自分类Dev

基于列条件的大熊猫

来自分类Dev

扩大熊猫列的排名

来自分类Dev

合并大熊猫中的列?

来自分类Dev

大熊猫中列的条件求和

来自分类Dev

如何列分隔符添加到大熊猫数据帧显示

来自分类Dev

按索引对大熊猫系列进行排序

来自分类Dev

大熊猫:将CSV系列转换为数据框

来自分类Dev

通过重命名合并大熊猫分类系列

来自分类Dev

大熊猫系列中的向量化日期解析?

来自分类Dev

使用NaN获得大熊猫系列模式的最快方法

来自分类Dev

大熊猫:将CSV系列转换为数据框

来自分类Dev

通过重命名合并大熊猫分类系列

来自分类Dev

将相同的键值附加到字典列表