Python 比较两列
我知道我读过一种方法来做我正在寻找的事情,但我似乎找不到它 我有一个熊猫数据框,看起来像这样:Python 比较两列,python,pandas,Python,Pandas,我知道我读过一种方法来做我正在寻找的事情,但我似乎找不到它 我有一个熊猫数据框,看起来像这样: Chrom Loc WT Var Change ConvChange AO DP VAF \ 0 chr1 115227855 T A T>A T>A 5 19346 0.000258451 IntEx Gene Upstream Downstream Indi
Chrom Loc WT Var Change ConvChange AO DP VAF \
0 chr1 115227855 T A T>A T>A 5 19346 0.000258451
IntEx Gene Upstream Downstream Individual
0 TIII TIIIa T C 1
我想了解个体
在每个独特的色度
、Loc
和变化
组合中,VAF
的最大差异在哪里
我正在考虑更改当前的数据帧,以便它看起来像下面这样,给我一个标准偏差列,可以对其进行排序,从而给我提供差异最大的位置。这是一个好的方法吗?有没有一个好的方法来做这样的事情
1 2 3 Mean Std
chr1-115227855-T>A 0.000258451 0.000548128 0.000789456 0.000532011 0.0002170812
您可以使用一些熊猫造型: MCVE: 鉴于:
print(df)
Chrom Individual VAF Var WT
0 chr1 1 0.076397 A T
1 chr1 2 0.964344 A T
2 chr1 3 0.563713 A T
重塑和聚合:
df.set_index(['Chrom','WT','Var','Individual'])['VAF'].unstack(-1)\
.pipe(lambda x: x.assign(mean=x.mean(1), std=x.std(1)))
输出:
Individual 1 2 3 mean std
Chrom WT Var
chr1 T A 0.076397 0.964344 0.563713 0.534818 0.444678
这看起来像是我所希望的,但它抛出了一个错误,
索引包含重复的条目,无法重塑
。但是一切都应该是唯一的,np.where(df.index.duplicated())
似乎证实了这一点。我遗漏了什么吗?@TheNightman在本例中,如果您有与['Chrom','WT','Var','Individual']完全相同的重复记录,那么这将导致此错误,然后您必须选择如何聚合'VAF'。我怀疑在您的数据集中,每个前面提到的列不只有一条记录。如果是这种情况,那么我们不能按原样使用unstack方法。您能否提供一个较小的示例,但包含所需的属性?