2016-05-11 9 views
1

Ich habe Datenrahmen, df, die wie folgt aussieht:Pandas, Zusammenführen von zwei Reihen mit unterschiedlichen Indexnamen

   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 

Ich brauche Indizes ‚Klempner‘ und ‚Piping‘ zu verschmelzen, so dass ich einen Datenrahmen haben das sieht so aus:

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

Wie kann ich das erreichen ist Pandas?

I haben versucht, die folgenden

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

aber dies hält den 'Piping' Zeile in dem Datenrahmen. Gibt es eine Möglichkeit, dies automatisch zu tun, so dass die Piping-Zeile automatisch entfernt wird? This und this Fragen haben nicht zur Verfügung gestellt, was ich brauche.

Antwort

2

Je leichter Rückgang ist.

Aber Sie können replace Werte in Index (erste to_series nennen, weil replace nicht in index umgesetzt wird) und dann groupby durch Index mit sum:

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

Sein nicht automaticaly aber:

df.loc['Plumbing'] = df.loc['Plumbing'] + df.loc['Piping'] 
df.drop('Piping',axis=0,inplace=True) 
Verwandte Themen