Ich habe Datenrahmen in Pandas und ich habe eine Funktion geschrieben, um die Informationen in jeder Zeile zu verwenden, um eine neue Spalte zu generieren. Ich möchte das Ergebnis in einem Listenformat sein:Eine Liste als Ergebnis einer Funktion in Pandas
A B C
3 4 1
4 2 5
def Computation(row):
if row['B'] >= 3:
return [s for s in range(row['C'],50)]
else:
return [s for s in range(row['C']+2,50)]
df['D'] = df.apply(Computation, axis = 1)
Allerdings erhalte ich folgende Fehlermeldung:
„konnte nicht Eingabearray übertragen von Form (308) in Form (9)“
Können Sie mir bitte sagen, wie Sie dieses Problem lösen können?
Das ist großartig. Aber wie kann ich das implementieren, wenn der Anfangspunkt des Bereichs vom Wert von B in jeder Zeile abhängt? – user36729
@ user36729 Können Sie ein konkretes Beispiel dafür geben, was Sie tun möchten? Wäre ein Bereich zwischen b und 4c ein gutes Beispiel? –
Das habe ich in meiner Hauptfrage gemacht. – user36729