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