Heim > Artikel > Backend-Entwicklung > Wie füge ich in Python erfolgreich eine Liste in eine DataFrame-Zelle ein?
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.
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.
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.
<code class="python">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)</code>
Dieser Vorgang fügt ['m', 'n'] erfolgreich und ohne Fehler in Zelle 1B ein.
Es ist wichtig zu beachten, dass der Dtype der Spalte, in die Sie die Liste einfügen möchten, auf „Objekt“ 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 versuchen, sie einzufügen:
<code class="python">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]</code>
Das obige ist der detaillierte Inhalt vonWie füge ich in Python erfolgreich eine Liste in eine DataFrame-Zelle ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!