Pandas anwenden Funktionen geben eine Liste in eine neue Spalte zurückPython

Python-Programme
Guest
 Pandas anwenden Funktionen geben eine Liste in eine neue Spalte zurück

Post by Guest »

Ich habe einen Pandas -Datenfreame: < /p>
import pandas as pd
import numpy as np

np.random.seed(150)
df = pd.DataFrame(np.random.randint(0, 10, size=(10, 2)), columns=['A', 'B'])
< /code>
Ich möchte eine neue Spalte "C" hinzufügen, deren Werte die kombinierte Liste aller drei Zeilen in Spalte "B" sind. Daher verwende ich die folgende Methode, um meine Anforderungen zu erfüllen, aber diese Methode ist langsam, wenn die Daten groß sind. < /P>
>>> df['C'] = [df['B'].iloc[i-2:i+1].tolist() if i >= 2 else None for i in range(len(df))]
>>> df
A B C
0 4 9 None
1 0 2 None
2 4 5 [9, 2, 5]
3 7 9 [2, 5, 9]
4 8 3 [5, 9, 3]
5 8 1 [9, 3, 1]
6 1 4 [3, 1, 4]
7 4 1 [1, 4, 1]
8 1 9 [4, 1, 9]
9 3 7 [1, 9, 7]
< /code>
Wenn ich versuche, die Funktion DF.Apply zu verwenden, erhalte ich eine Fehlermeldung: < /p>
df['C'] = df['B'].rolling(window=3).apply(lambda x: list(x), raw=False)

TypeError: must be real number, not list
< /code>
Ich erinnere mich, dass Pandas anwenden keine Liste zurückgibt. Gibt es also einen besseren Weg? Ich habe das Forum durchsucht, konnte aber kein geeignetes Thema über Bewerben und Rückkehr finden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post