Ich habe zwei DataFrames und möchte subtrahieren.Subtrahierende Werte von verschiedenen Datenrahmen
df1:
Val1 Val2 Val3
0 -27 -0.8 -6.786321 -7.024615 -13.946589
1 -27 -0.9 -5.746795 -5.804550 -11.576365
2 -27 -1.0 -4.624857 -4.372321 -9.103681
3 -27 -1.2 -2.685832 -2.418888 -5.057056
4 -27 -1.4 -1.445561 -1.389468 -2.622357
df2:
Bench
0 0.4601
1 -5.3336
2 -6.0163
3 -4.1776
4 -2.3472
Als ich die gleichen Indizes haben, habe ich versucht zu tun: df1-df2
, aber es hat nicht funktioniert.
Deshalb habe ich versucht, einen anderen Weg zu verwenden:
headers = list(df1.columns.values)
filtr_headers = filter(lambda x: x!='',headers)
for i in filtr_headers:
df1['%s' %(i)] = df1['%s' %(i)] - df2['Bench']
Aber ich bin im Gegenzug Datenrahmen mit NaN-Werte zu bekommen. Ich weiß nicht, warum es passiert. Alle Hinweise werden sehr geschätzt.
Dank verwenden können! Es funktioniert! Obwohl ich versuche zu verstehen, warum meine Art der Implementierung nicht funktioniert. s das Problem mit einer anderen Anzahl von Spalten in diesen beiden Dataframes? Ich möchte auch zwei erste Spalten überspringen, während ich subtrahiere. Ich habe versucht, es zu tun: df1.ix ['Val1':]. Sub (df2.Bench.values, Achse = 0), aber ich bekomme wieder Fehler. – Monica
@Monica Gern geschehen. Über Ihren ersten Punkt - es versucht einen Join zu machen, um gleichnamige Spalten zu subtrahieren, aber es gibt keine. Über Ihren zweiten Punkt - Sie haben eine merkwürdige Indexsache. Darf ich Sie bitten, eine separate Frage zu diesem Thema zu stellen? Es ist eine separate Frage, und für sich selbst interessant. Wenn du willst, gib hier einen Link an und ich werde mich freuen, dort zu schreiben. –
@Monica In jedem Fall sind das keine Spalten, sie sind Teil des Indexes. Probiere 'df1.index = range (5)' und schau was passiert. –