Ich habe ein Datenframe mit 40 Millionen Datensätze und ich muss 2 neue Spalten (net_amt und share_amt) aus bestehenden amt und sharing_pct Spalten erstellen. Ich habe zwei Funktionen erstellt, die diese Beträge berechnen und dann die Funktion apply verwenden, um sie wieder in den Datenrahmen zu bringen. Da mein Datenrahmen groß ist, benötigt er mehr Zeit. Können wir beiden Beträge bei einem Schuss berechnen oder ist es völlig ein besserer Weg, es zu tunPython Pandas - mit Apply Function und Erstellen neuer Spalten in Dataframe
def fn_net(row):
if (row['sharing']== 1):
return row['amt'] * row['sharing_pct']
else:
return row['amt']
def fn_share(row):
if (row['sharing']== 1):
return (row['amt']) * (1- row['sharing_pct'])
else:
return 0
df_load['net_amt'] = df_load.apply (lambda row: fn_net (row),axis=1)
df_load['share_amt'] = df_load.apply (lambda row: fn_share (row),axis=1)
können Sie überprüfen die [Series.where] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.where.html) -Funktion. – Psidom