我有一个非常大的数据文件(数以万计的行和列),格式与此类似
name x y gh_00hr_bio_rep1 gh_00hr_bio_rep2 gh_00hr_bio_rep3 gh_06hr_bio_rep1
gene1 x y 2 3 2 1
gene2 x y 5 7 6 2
我对每个基因的目标是找出每组重复的平均值
最后,我只希望有一些列的平均值标题像“00hr_bio”,并删除所有的个人重复
我现在的想法是这样:
for row in df:
df[avg] = df.iloc[3:].rolling(window=3, axis=1).mean()
但我不知道如何真正做到这一点
df.iloc[3]
是我尝试从第三列开始的方式,但我相当肯定这样做是行不通的
我甚至不知道从哪里开始“合并”3列到1列
如果您有任何建议,我将不胜感激,因为我显然不知道我在做什么
你很接近
你会得到这个:
如果您希望从不同的列集合中获得平均值,可以执行以下操作:
如果每个平均值的列数相同。否则,您可能需要使用rep列的名称,这取决于数据的外观
我将首先构建一系列由原始列索引的最终名称:
然后我会用它来询问轴1上的groupby的平均值:
它提供了一个与原始数据帧相似的索引新数据帧,并具有平均列:
然后,您可以将其水平连接到第一个数据帧或其前3列:
要获得:
相关问题 更多 >
编程相关推荐