2016-05-11 15 views
1

で2つの行をマージ私はこのようになり、データフレーム、df、持っている:パンダ、異なるインデックス名

   Done Todo Total      
Painting  55 54 109 
Fitting  17 26  43 
Plumbing  10 26  36 
Electricity  7 29  36 
Piping   29  5  34 
Roofing  12 20  32 

を私はデータフレームを持つようにインデックス「配管」と「配管」をマージする必要があります

   Done Todo Total      
Painting  55 54 109 
Fitting  17 26  43 
Plumbing  39 46  68 
Electricity  7 29  36 
Piping   29  5  34 

私はこれをどのように達成できますか?

私は、次の

df.loc['Plumbing'] = df.loc['Plumbing'] + df.loc['Piping'] 

を試してみましたが、これはデータフレームに「配管」の行を保持します。 '配管行が自動的に削除されるように自動的に行う方法はありますか? Thisthisの質問は私が必要なものを提供していませんでした。

答えて

2

簡単です。

しかし、あなたは、インデックス内のreplacesumとインデックスで(最初replaceindexに実装されていないため、to_seriesを呼び出し)、次にgroupbyことができます:

df.index = df.index.to_series().replace({'Piping':'Plumbing'}) 
print df 
      Done Todo Total 
Painting  55 54 109 
Fitting  17 26  43 
Plumbing  10 26  36 
Electricity  7 29  36 
Plumbing  29  5  34 
Roofing  12 20  32 

print df.groupby(df.index, sort=False).sum() 
      Done Todo Total 
Painting  55 54 109 
Fitting  17 26  43 
Plumbing  39 31  70 
Electricity  7 29  36 
Roofing  12 20  32 
3

そのないautomaticalyしかし:ドロップが

df.loc['Plumbing'] = df.loc['Plumbing'] + df.loc['Piping'] 
df.drop('Piping',axis=0,inplace=True) 
関連する問題