Teilen / explodieren Sie eine Wörterbuchspalte in separate Spalten mit Pandas
Posted: 15 May 2025, 21:40
Ich habe Daten in einer PostgreSQL -Datenbank gespeichert. Ich wende diese Daten mit Python2.7 ab und verwandelte sie in einen Pandas -Datenframe. Die letzte Spalte dieses Datenrahmens enthält jedoch ein Wörterbuch der Werte. Der DataFrame df sieht folgendermaßen aus:
Die Daten werden in diesem Format aus der PostgreSQL -Datenbank importiert. Irgendwelche Hilfe oder Ideen mit diesem Thema? Gibt es eine Möglichkeit, den Unicode zu konvertieren?
Code: Select all
Station ID Pollutants
8809 {"a": "46", "b": "3", "c": "12"}
8810 {"a": "36", "b": "5", "c": "8"}
8811 {"b": "2", "c": "7"}
8812 {"c": "11"}
8813 {"a": "82", "c": "15"}
< /code>
Ich muss diese Spalte in separate Spalten aufteilen, damit der DataFrame `df2 so aussieht: < /p>
Station ID a b c
8809 46 3 12
8810 36 5 8
8811 NaN 2 7
8812 NaN NaN 11
8813 82 NaN 15
< /code>
Das Hauptproblem, das ich habe, ist, dass die Listen nicht die gleichen Längen haben. Aber alle Listen enthalten nur bis zu den gleichen 3 Werten: 'A', 'B' und 'C' . Und sie erscheinen immer in derselben Reihenfolge ('A' First 'B' zweiter, 'c' dritter).objs = [df, pandas.DataFrame(df['Pollutant Levels'].tolist()).iloc[:, :3]]
df2 = pandas.concat(objs, axis=1).drop('Pollutant Levels', axis=1)
print(df2)
< /code>
Ich habe diesen Code erst letzte Woche ausgeführt und es hat einwandfrei funktioniert. Aber jetzt ist mein Code kaputt und ich erhalte diesen Fehler aus der Zeile [4]: < /p>
IndexError: out-of-bounds on slice (end)
< /code>
Ich habe keine Änderungen am Code vorgenommen, aber jetzt erhalte jetzt den Fehler. Ich bin der Meinung, dass dies darauf zurückzuführen ist, dass meine Methode nicht robust oder ordnungsgemäß ist.#My data format
u{'a': '1', 'b': '2', 'c': '3'}
#and not
{u'a': '1', u'b': '2', u'c': '3'}