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方法。您能否提供一个较小的示例,但包含所需的属性?