Python 在数据帧的列上追加和删除重复值

Python 在数据帧的列上追加和删除重复值,python,pandas,dataframe,Python,Pandas,Dataframe,所以我有一个通过df4.append(df3,ignore_index=True)生成的数据帧;但是,我在删除列Gene_符号中的重复项的同时仍保留案例1、2和3中的值时遇到了一些问题。我已经尝试过df4.drop_duplicates([“Gene_Symbol”])和各种其他方法,所有这些方法都倾向于删除其他行和数据 我得到的是: X Case1 Case2 Case3 Gene_Symbol 8026 8025

所以我有一个通过df4.append(df3,ignore_index=True)生成的数据帧;但是,我在删除列Gene_符号中的重复项的同时仍保留案例1、2和3中的值时遇到了一些问题。我已经尝试过df4.drop_duplicates([“Gene_Symbol”])和各种其他方法,所有这些方法都倾向于删除其他行和数据

我得到的是:

         X       Case1       Case2       Case3       Gene_Symbol 
8026    8025    0.5326718   0.0000000   0.0000000   GAPDHS;TMEM147
32531   32530   0.0000000   0.5416982   0.0000000   GAPDHS;TMEM147
57051   57050   0.0000000   0.0000000   0.4821592   GAPDHS;TMEM147
我想要的是一个数据框,在它下面保存我的实际值

     Case1       Case2       Case3       Gene_Symbol 
    0.5326718   0.5416982   0.4821592   GAPDHS;TMEM147

谢谢你抽出时间

您可以尝试以下方法,如果所有Cases列对于每个基因都只包含一个非零值,那么这应该是可行的(假设您没有看起来像索引的
X
列):

或:


您可以尝试以下方法,如果所有Cases列对于每个基因只包含一个非零值,那么这应该是可行的(假设您没有看起来像索引的
X
列):

或:

怎么样

df = df.groupby('Gene_Symbol')['Case1', 'Case2', 'Case3'].sum().reset_index()

    Gene_Symbol     Case1       Case2       Case3
0   GAPDHS;TMEM147  0.532672    0.541698    0.482159
怎么样

df = df.groupby('Gene_Symbol')['Case1', 'Case2', 'Case3'].sum().reset_index()

    Gene_Symbol     Case1       Case2       Case3
0   GAPDHS;TMEM147  0.532672    0.541698    0.482159

那么您想用实际测量值替换CaseX列中的0测量值?上述情况(只有一个有效测量值,总共三行)是否适用于您的所有数据?这是正确的!如果问题不清楚,很抱歉。那么您希望用实际测量值替换CaseX列中的0测量值?上述情况(只有一个有效测量值,总共三行)是否适用于您的所有数据?这是正确的!如果问题不清楚,很抱歉。不幸的是,这似乎删除了案例2和案例3的值。感谢您的思考您认为删除案例2和案例3的值是什么意思?如果您的意思是拥有NAN,您可以使用
fillna(0)
。因此它删除了X列,但我仍然丢失了案例2和案例3的值。因此,我丢失了案例2和案例3的值:.541698和.482159,它们被替换为0。不确定。这似乎对我的示例数据有效。不幸的是,这似乎删除了我在案例2和案例3中的值。感谢您的思考您认为删除案例2和案例3的值是什么意思?如果您的意思是拥有NAN,您可以使用
fillna(0)
。因此它删除了X列,但我仍然丢失了案例2和案例3的值。因此,我丢失了案例2和案例3的值:.541698和.482159,它们被替换为0。不确定。这对我来说似乎对样本数据有效。嗨,有没有其他方法可以使它成为一个循环,而不是编写案例1和案例2?我试着做下面的df4=df4.groupby('Gene_Symbol')[“Case”+str(index)].sum().reset_index(),但最后只剩下Case 3。谢谢如果您对X列不感兴趣,可以使用df.groupby('Gene_Symbol').sum().reset_index(),因为这也会在X中添加值谢谢您的天才!!嗨,有没有办法让它比写案例1和案例2更好的循环?我试着做下面的df4=df4.groupby('Gene_Symbol')[“Case”+str(index)].sum().reset_index(),但最后只剩下Case 3。谢谢如果您对X列不感兴趣,可以使用df.groupby('Gene_Symbol').sum().reset_index(),因为这也会在X中添加值谢谢您的天才!!
df = df.groupby('Gene_Symbol')['Case1', 'Case2', 'Case3'].sum().reset_index()

    Gene_Symbol     Case1       Case2       Case3
0   GAPDHS;TMEM147  0.532672    0.541698    0.482159