我有一个有4列的数据框('string1','float1','float2','string2')。'string1'列在连续的行中有重复的值。我需要按每个元素遍历“float1”列(即float),并检查它前面是否有+/-运算符。如果运算符与“string1”的相同值不同,则将删除整行,否则,查找“float1”、“float2”的平均值,并将“string2”中的字符串值加上“|”,并且“string1”保持不变。你知道吗
数据框如下所示:
symbol logFC adj.P.Val ID
A2M -1.0912438 0.02647898 217757_at
A2M-AS1 -0.8953089 0.01443973 1564139_at
A4GALT -1.3640826 0.02797254 219488_at
AATBC -2.2205471 0.00654647 205969_at
AATBC 1.3869134 0.00874959 1563088_a_at
ABCA17P 2.3007386 0.04703096 231164_at
ABCA6 -2.1360694 0.02161093 0082_at
ABCA6 -1.1171276 0.03133593 7504_at
ABCA6 -1.8703369 0.01409799 4719_at
我试过为每个条目运行for循环,但是它非常耗时,并且给了我每个值的平均值
预期的数据帧应如下所示:
对于(符号中的AATBC),logFc具有(-2.2205471和1.3869134),因此这两行被删除,因为它们具有不同的运算符
对于(符号中的ABCA6),所有logFc都有相同的运算符,因此我们将在同一行中找到(logFc和adj p.value的)平均值并写入ID,如下所示
symbol logFC adj.P.Val ID
A2M -1.0912438 0.02647898 217757_at
A2M-AS1 -0.8953089 0.01443973 1564139_at
A4GALT -1.3640826 0.02797254 219488_at
ABCA17P 2.3007386 0.04703096 231164_at
ABCA6 -1.7078446 0.02234828 0082_at | 7504_at | 4719_at
使用
where
将具有相同符号的'symbols'
子集。然后groupby
+agg
。这是因为groupby
忽略以NaN
作为键的行,这有效地从输出中删除了更改符号的组。你知道吗相关问题 更多 >
编程相关推荐