Ich versuche, Zeilen eines Datenrahmens durch die gleiche Indexzeile in einem anderen Datenrahmen zu teilen. Es gibt die gleiche Anzahl von Spalten in jedem Datenrahmen.Teilen Sie einen Datenrahmen durch einen anderen Datenrahmen gemäß Index
Ziel ist es, eine Liste von Spalten durch eine andere Liste von Spalten zu teilen. Gibt es eine Möglichkeit, dies in Pandas zu tun?
Hier ist ein Beispieldaten:
import pandas as pd
import numpy as np
data1 = {"a":[10.,20.,30.,40.,50.],
"b":[900.,800.,700.,600.,500.],
"c":[2.,4.,6.,8.,10.]}
data2 = {"f":[1.,2.,3.,4.],
"g":[900.,800.,700.,600.],
"h":[10.,20.,30.,40.]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
Erwartete Ausgabe:
a/f b/g c/h
0 10.0 1.0 0.2
1 10.0 1.0 0.2
2 10.0 1.0 0.2
3 10.0 1.0 0.2
4 NaN NaN NaN
Ab jetzt habe ich diese kleine Funktion verwende ich schrieb:
def divDF(df1, df2):
nRow, nCol = df1.shape
result = pd.DataFrame(np.empty((nRow, nCol)), index=df1.index)
for col in range(nCol):
result.iloc[:,col] = df1.iloc[:,col]/df2.iloc[:,col]
return result
Ist das der Nur so oder gibt es einen schnelleren Weg?
Manchmal habe ich einfach überdenken einige Lösungen. Schön piRSquared. –
@ScottBoston glauben Sie mir ... so .. tun .. ich! – piRSquared
Die Beispieldaten wurden aktualisiert. Funktioniert das mit unterschiedlichen Indizes? – Oligg