从具有相同值的多行中获取相关性 (Python)
Get correlations from multiple rows which have the same value (Python)
所以我正在编写一个脚本来比较数据,我需要关联收集到的数据。 DataFrame 由一列基因组成,这些基因与其他基因进行比较以获得重复项。我需要具有相同重复基因的基因的相关性。
示例数据:
Index Gene Duplicate of Value1 Value2 Value3 Etc.
0 Gene1 DGene1 0.1 14 13 ..
1 Gene14 DGene1 0 13 17 ..
2 Gene4 DGene3 20 0 0 ..
3 Gene90 DGene3 25 0 10 ..
4 Gene22 DGene31 0 10 0 ..
5 Gene40 DGene31 10 0.5 0 ..
6 Gene130 DGene31 10 1 0 ..
7 Gene600 DGene31 12 0 0 ..
在上面的例子中,我想要三个相关性:1 个基因 Gene1 和 Gene14,1 个基因 Gene4 和 Gene90,最后一个 Gene22、Gene40、Gene130 和 Gene600。这些行中的所有值(Value1 等)都存在相关性。
我尝试按重复项(CGENE 是重复项)对数据进行分组,
df_com2.groupby(CGENE).apply(lambda x: x.index.tolist())
但我无法找到一种方法 select 这样做之后来自相应基因的所有值。
如有任何帮助,我们将不胜感激!
不完全清楚您要从 groupby
中寻找什么,但我怀疑您正在寻找 .agg
来聚合字段。
例如,这将给出以逗号分隔的基因列表,以及 Value1 的平均值:
In [26]: df
Out[26]:
Index Gene Duplicate_of Value1 Value2 Value3 Etc.
0 0 Gene1 DGene1 0.1 14.0 13 ..
1 1 Gene14 DGene1 0.0 13.0 17 ..
2 2 Gene4 DGene3 20.0 0.0 0 ..
3 3 Gene90 DGene3 25.0 0.0 10 ..
4 4 Gene22 DGene31 0.0 10.0 0 ..
5 5 Gene40 DGene31 10.0 0.5 0 ..
6 6 Gene130 DGene31 10.0 1.0 0 ..
7 7 Gene600 DGene31 12.0 0.0 0 ..
In [27]: df.groupby("Duplicate_of").agg({'Gene': ', '.join, 'Value1': np.mean})
Out[27]:
Gene Value1
Duplicate_of
DGene1 Gene1, Gene14 0.05
DGene3 Gene4, Gene90 22.50
DGene31 Gene22, Gene40, Gene130, Gene600 8.00
所以我正在编写一个脚本来比较数据,我需要关联收集到的数据。 DataFrame 由一列基因组成,这些基因与其他基因进行比较以获得重复项。我需要具有相同重复基因的基因的相关性。
示例数据:
Index Gene Duplicate of Value1 Value2 Value3 Etc.
0 Gene1 DGene1 0.1 14 13 ..
1 Gene14 DGene1 0 13 17 ..
2 Gene4 DGene3 20 0 0 ..
3 Gene90 DGene3 25 0 10 ..
4 Gene22 DGene31 0 10 0 ..
5 Gene40 DGene31 10 0.5 0 ..
6 Gene130 DGene31 10 1 0 ..
7 Gene600 DGene31 12 0 0 ..
在上面的例子中,我想要三个相关性:1 个基因 Gene1 和 Gene14,1 个基因 Gene4 和 Gene90,最后一个 Gene22、Gene40、Gene130 和 Gene600。这些行中的所有值(Value1 等)都存在相关性。
我尝试按重复项(CGENE 是重复项)对数据进行分组,
df_com2.groupby(CGENE).apply(lambda x: x.index.tolist())
但我无法找到一种方法 select 这样做之后来自相应基因的所有值。
如有任何帮助,我们将不胜感激!
不完全清楚您要从 groupby
中寻找什么,但我怀疑您正在寻找 .agg
来聚合字段。
例如,这将给出以逗号分隔的基因列表,以及 Value1 的平均值:
In [26]: df
Out[26]:
Index Gene Duplicate_of Value1 Value2 Value3 Etc.
0 0 Gene1 DGene1 0.1 14.0 13 ..
1 1 Gene14 DGene1 0.0 13.0 17 ..
2 2 Gene4 DGene3 20.0 0.0 0 ..
3 3 Gene90 DGene3 25.0 0.0 10 ..
4 4 Gene22 DGene31 0.0 10.0 0 ..
5 5 Gene40 DGene31 10.0 0.5 0 ..
6 6 Gene130 DGene31 10.0 1.0 0 ..
7 7 Gene600 DGene31 12.0 0.0 0 ..
In [27]: df.groupby("Duplicate_of").agg({'Gene': ', '.join, 'Value1': np.mean})
Out[27]:
Gene Value1
Duplicate_of
DGene1 Gene1, Gene14 0.05
DGene3 Gene4, Gene90 22.50
DGene31 Gene22, Gene40, Gene130, Gene600 8.00