我有两个数据帧是50列,格式如下。你知道吗
ID v10 v9 GENE
NM_198317 0.0 9.666823e-01 KLHL17
NM_198317 -1.0 0.000000e+00 KLHL17
我想平均基因匹配的值,所以我用
common_mouse = common_mouse.groupby(['GENE'], as_index=False).agg([np.average])
这就产生了一个每列有两个标题的表,但我只想保留旧的标题。你知道吗
logger.info("Column headers: %s" % list(common_mouse.columns.values))
演出
[('v10', 'average'), ('v11', 'average'), ('v12', 'average')]
而不是
['v10', 'v11', 'v12']
我试图使用zip(*common_mouse.columns.values)
来重新分配列,但似乎无法让它工作。有没有办法阻止或从列标题中删除新的“average”字段?你知道吗
您正在使用函数列表作为
agg
的参数。当您这样做的时候,您告诉Pandas groupby应该为每个列计算几个聚合函数。它通过创建一个MultiIndex columns对象让您知道。你知道吗所以不要给它一个要聚合的函数列表。只给一个(不在列表中)。你知道吗
使用标量
字符串运算符
但是,Pandas已经对字符串进行了预编码,并对其算法进行了优化。平均就是其中之一。改用
mean
字符串参数。你知道吗groupby方法
更进一步说,熊猫有专门的groupby方法。你知道吗
重置索引有什么帮助吗?你知道吗
像这样
相关问题 更多 >
编程相关推荐