„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 füge ich in Python erfolgreich eine Liste in eine DataFrame-Zelle ein?

Wie füge ich in Python erfolgreich eine Liste in eine DataFrame-Zelle ein?

Veröffentlicht am 07.11.2024
Durchsuche:455

How to Successfully Insert a List into a DataFrame Cell in Python?

Einfügen einer Liste in eine Zelle in einem DataFrame

Beim Umgang mit spärlichen Daten in Python-Pandas kann es schwierig sein, Listen in bestimmte Zellen einzufügen. Der Versuch solcher Operationen mit gängigen Methoden wie df.ix[1,'B'] = abc führt häufig zu Fehlern aufgrund nicht übereinstimmender Schlüssellängen.

Alternative Lösungen und Einschränkungen

Versuche, das zu umgehen Fehler, indem Sie die Liste in zusätzliche eckige Klammern einschließen (z. B. df.ix[1,'B'] = [abc]) oder Zeichenfolgendarstellungen verwenden (z. B. df.ix[1,'B'] = ', '.join). (abc)) sind unbefriedigend, da sie zusätzliche Elemente einführen oder die beabsichtigte Datenstruktur ändern.

Verwendung von df.at zum Einfügen von Listen

Ein effektiverer Ansatz ist die Verwendung von df.at anstelle von df.ix oder df.loc. df.at zielt speziell auf eine einzelne Zelle ab und beseitigt so die Mehrdeutigkeit, die zu den oben genannten Fehlern führen kann.

import pandas as pd

# Create a dataframe with mixed data types
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']})

# Insert a list into cell 1B
df.at[1, 'B'] = ['m', 'n']

print(df)

Dieser Vorgang fügt ['m', 'n'] erfolgreich und ohne Fehler in Zelle 1B ein.

Spalten-Dtype-Kompatibilität sicherstellen

Das ist wichtig zu beachten dass der dtype der Spalte, in die Sie die Liste einfügen möchten, auf „object“ gesetzt sein muss. Wenn die Spalte einen anderen dtype hat, z. B. „int64“, tritt ein Fehler auf. Um dieses Problem zu beheben, können Sie den dtype der Spalte konvertieren, bevor Sie mit der Einfügung beginnen:

df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [1,2,3]})
df['B'] = df['B'].astype('object')

# Now, list insertion will work as expected
df.at[1, 'B'] = [1, 2, 3]
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