Page 1 of 1

Panda iteriert Zeilen und multipliziert die Werte der n-ten Zeile mit dem Wert der nächsten (n+1) Zeile

Posted: 08 Jan 2025, 09:24
by Guest
Ich versuche, mehrere Spaltenzeilen zu iterieren und die n-te Zeile mit n+1 Zeile zu multiplizieren, danach füge ich Spalten hinzu.
Ich habe den folgenden Code ausprobiert und er funktioniert einwandfrei.Gibt es eine andere einfache Möglichkeit, den Subtraktions- und Multiplikationsteil zusammen zu erreichen?

Code: Select all

import pandas as pd

df = pd.DataFrame({'C': ["Spark","PySpark","Python","pandas","Java"],
'F' : [2,4,3,5,4],
'D':[3,4,6,5,5]})

df1 = pd.DataFrame({'C': ["Spark","PySpark","Python","pandas","Java"],
'F': [1,2,1,2,1],
'D':[1,2,2,2,1]})

df = pd.merge(df, df1, on="C")

df['F_x-F_y'] = df['F_x'] - df['F_y']
df['D_x-D_y'] = df['D_x'] - df['D_y']

for index, row in df.iterrows():
df['F_mul'] = df['F_x-F_y'].mul(df['F_x-F_y'].shift())
df['D_mul'] = df['D_x-D_y'].mul(df['D_x-D_y'].shift())

df['F+D'] = df['F_mul'] + df['D_mul']
Ausgabe -

Code: Select all

         C  F_x  D_x  F_y  D_y  F_x-F_y  D_x-D_y  F_mul  D_mul   F+D
0    Spark    2    3    1    1        1        2    NaN    NaN   NaN
1  PySpark    4    4    2    2        2        2    2.0    4.0   6.0
2   Python    3    6    1    2        2        4    4.0    8.0  12.0
3   pandas    5    5    2    2        3        3    6.0   12.0  18.0
4     Java    4    5    1    1        3        4    9.0   12.0  21.0