2016-11-10 5 views
1

Ich habe folgenden Datenrahmen:Wie subtrahiere ich Werte in einer Spalte mit den Werten einer anderen in einem DataFrame?

enter image description here

Ich mag sehen, in welchem ​​Land den größten Unterschied zwischen der Spalte „Gold“ und „Gold 1“ hat. Der Index ist derzeit die Länder.

Als ein Beispiel, mit Afghanistan, wäre es 0 - 0 = 0. Ich mache das mit jedem Land und als die höchste Nummer in dieser Liste ist meine Antwort. So dachte ich, ich möchte es tun.

Weiß jemand, wie ich das tun kann? Oder gibt es eine eingebaute Funktion, die das berechnen kann?

Antwort

0

Sie können diese beiden Spalten mit der Subtraktion Einbau-Vektor subtrahieren:

df1['Gold'] - df2['Gold 1'] 
0

Das Land mit größten Unterschied ist

df.Gold.sub(df['Gold 1']).idxmax() 

Die größte absolute Differenz

df.Gold.sub(df['Gold 1']).abs().idxmax() 

Sie kann dies auch durch den Unterschied

sortieren
df.loc[df.Gold.sub(df['Gold 1']).sort_values().index] 

Oder die absoluten Differenzen

df.loc[df.Gold.sub(df['Gold 1']).abs().sort_values().index] 
0

Sie den Code unten ausprobieren können:

import pandas as pd 
df = pd.DataFrame([['Afgh',0,0],['Agnt',18,0]], columns = ['Country','Gold','Gold1']) 
df['GoldDiff'] = df['Gold'] - df['Gold1'] 
df.sort_values(by = 'GoldDiff', ascending = False) 

df ist nur ein Test auf Datenrahmen bei Ihnen oben basiert. df['GoldDiff'] erstellt eine neue Spalte, um Unterschiede zu speichern.

Dann können Sie einfach die Werte sortieren, indem Sie die Funktion sort_values von Pandas verwenden. Sie können auch die Option inplace = True hinzufügen, wenn Sie Ihren Datenrahmen als den sortierten ändern möchten.

+0

Froh, dass es Kumpel geholfen hat, akzeptieren Sie bitte als Antwort, wenn es Ihnen geholfen hat, Ihr Problem zu lösen. http://stackoverflow.com/help/someone-answers – BernardL

Verwandte Themen