„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich eine Liste in eine bestimmte Zelle in einem Python Pandas-Datenrahmen einfügen?

Wie kann ich eine Liste in eine bestimmte Zelle in einem Python Pandas-Datenrahmen einfügen?

Veröffentlicht am 18.11.2024
Durchsuche:228

How Can I Insert a List into a Specific Cell in a Python Pandas Dataframe?

Liste in eine Zelle im Python-Pandas-Datenrahmen einfügen

Das Einfügen einer Liste in eine bestimmte Zelle in einem Pandas-Datenrahmen kann eine knifflige Aufgabe sein. Lassen Sie uns die verschiedenen Ansätze und potenziellen Probleme anhand des gegebenen Beispiels untersuchen:

Ursprüngliches Problem:

Ein Datenrahmen „df“ mit der folgenden Struktur:

    A  B
0  12  NaN
1  23  NaN

und eine Liste 'abc' mit ['foo', 'bar']. Das Ziel besteht darin, diese Liste in Zelle 1B einzufügen.

Bemühungen:

  1. df.ix[1,'B'] = abc: Löst einen ValueError aus aufgrund ungleicher Länge von Schlüsseln und Werten.
  2. df.ix[1,'B'] = [abc]: Fügt eine Liste ein, die die 'abc'-Liste anstelle einzelner Elemente enthält.
  3. df.ix[1,'B'] = ', '.join(abc): Fügt einen String anstelle einer Liste ein.
  4. df.ix[1,'B'] = [', '. join(abc)]: Fügt eine Liste mit einem Element ein, die die verbundene Zeichenfolge enthält.

Lösung:

Die veraltete Methode set_value wurde durch at ersetzt. Die Verwendung von at garantiert das Festlegen eines einzelnen Werts:

df.at[1, 'B'] = ['foo', 'bar']

Zusätzliche Überlegungen:

  • Stellen Sie sicher, dass die Zielspalte über dtype=object verfügt, um das Einfügen von Listen zu ermöglichen.
  • Derselbe Ansatz kann angewendet werden, um Listen in Zellen einzufügen, die Ganzzahl- oder Zeichenfolgenwerte enthalten.
  • Beim Einfügen einer Liste in eine Spalte mit gemischten Datentypen (Ganzzahl und Zeichenfolge) kann jedoch ein ValueError auftreten. Dies kann gelöst werden, indem die Spalte vor dem Einfügen in dtype=object konvertiert wird.

Aktualisiertes Beispiel:

Einfügen der 'abc'-Liste in df2.loc[ 1,'B'] und df3.loc[1,'B']:

df2 = pd.DataFrame({
    'A': [12],
    'B': [nan],
    'C': ['bla']
})

df3 = pd.DataFrame({
    'A': [12],
    'B': [nan],
    'C': ['bla bla'],
    'D': [['item1', 'item2'], [11, 12, 13]]
})

df2.loc[1, 'B'] = ['foo', 'bar']
df3.loc[1, 'B'] = ['foo', 'bar']
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3