Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich eine Liste effektiv in eine bestimmte Zelle eines Pandas DataFrame ein?

Wie füge ich eine Liste effektiv in eine bestimmte Zelle eines Pandas DataFrame ein?

DDD
DDDOriginal
2024-10-30 07:47:28615Durchsuche

How do I effectively insert a list into a specific cell of a Pandas DataFrame?

Python pandas: Einfügen einer Liste in eine Zelle

Bei der Arbeit mit Datenrahmen ist es oft notwendig, den Inhalt einzelner anzupassen Zellen. In diesem Fall besteht die Aufgabe darin, eine bestimmte Liste, „abc“, in Zelle 1B in einem Datenrahmen einzufügen. Es wurden verschiedene Versuche unternommen, aber jeder stieß auf seine eigenen Herausforderungen.

Zunächst führte ein Versuch, die gesamte Liste mit df.ix[1,'B'] = abc direkt der Zelle zuzuweisen, zu einem ValueError aufgrund einer Nichtübereinstimmung der Anzahl der Schlüssel und Werte. Wenn Sie stattdessen df.ix[1,'B'] = [abc] verwenden, wird eine Liste mit der Liste „abc“ als einzigem Element erstellt, was nicht erwünscht ist.

Konvertieren der Liste in einen String mit df. ix[1,'B'] = ', '.join(abc) erzeugt den beabsichtigten Inhalt als String und nicht als Liste. In ähnlicher Weise wird durch die Verwendung von df.ix[1,'B'] = [', '.join(abc)] eine Liste mit einem einzelnen Zeichenfolgenelement erstellt.

Nachfolgende Versuche, die Liste in komplexere Datenrahmen einzufügen Bei Spaltentypen, die sowohl Ganzzahlen als auch Zeichenfolgen umfassen, tritt ein Fehler auf. Dies deutet darauf hin, dass das Problem in den gemischten Datentypen der Spalten liegt.

Um dieses Problem zu beheben, wird empfohlen, das at-Attribut anstelle von loc zu verwenden. Diese Methode bezieht sich konsistent auf einen einzelnen Wert und vermeidet so die Probleme, die bei „loc“ auftreten. Darüber hinaus verhindert die Sicherstellung, dass die Spalte, in die eingefügt wird, dtype=object hat, weitere Fehler.

Zum Beispiel fügt der folgende Code die „abc“-Liste erfolgreich in Zelle 1B des df2-Datenrahmens ein:

import pandas as pd

abc = ['foo', 'bar']
df2 = pd.DataFrame(data={'A': [12, 23], 'B': [None, None], 'C': ['bla', 'bla bla']})

df2['B'] = df2['B'].astype('object')  # Ensure 'B' has dtype=object
df2.at[1, 'B'] = abc

print(df2)

Ausgabe:

   A   B         C
0  12  NaN      bla
1  23  [foo, bar]  bla bla

Das obige ist der detaillierte Inhalt vonWie füge ich eine Liste effektiv in eine bestimmte Zelle eines Pandas DataFrame ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn