Dividi / Esplodi una colonna di dizionari in colonne separate con i panda

| | | | | |

Ho dei dati salvati in un database postgreSQL. Sto interrogando questi dati usando Python2.7 e trasformandoli in un Pandas DataFrame. Tuttavia, l'ultima colonna di questo dataframe ha un dizionario di valori al suo interno. Il df di DataFrame ha il seguente aspetto:

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"} 

Ho bisogno di dividere questa colonna in colonne separate, in modo che il DataFrame `df2 assomigli a questo:

Station ID abc 8809 46 3 12 8810 36 5 8 8811 NaN 2 7 8812 NaN NaN 11 8813 82 NaN 15 

Il problema principale che sto riscontrando è che le liste non hanno la stessa lunghezza. Ma tutte le liste contengono solo fino agli stessi 3 valori: "a", "b" e "c". E appaiono sempre nello stesso ordine ("a" prima, "b" seconda, "c" terza).

Il seguente codice UTILIZZATO per funzionare e restituire esattamente ciò che volevo (df2).

objs = [df, pandas.DataFrame(df["Livelli inquinanti"].tolist()).iloc[:, :3]] df2 = pandas.concat(objs, axis=1 .drop("Pollutant Levels", axis=1) print(df2) 

Stavo eseguendo questo codice solo la scorsa settimana e funzionava bene. Ma ora il mio codice è rotto e ottengo questo errore dalla riga [4]:

IndexError: out-of-bounds on slice (end) 

Non ho apportato modifiche al codice ma ora ricevo l'errore. Ritengo che ciò sia dovuto al fatto che il mio metodo non è solido o adeguato.

Qualsiasi suggerimento o guida su come dividere questa colonna di elenchi in colonne separate sarebbe molto apprezzato!

EDIT: Penso che i metodi .tolist() e .apply non funzionino sul mio codice perché è una stringa Unicode, ovvero:

#My data format u{" a": "1", "b": "2", "c": "3"} #e non {u"a": "1", u"b": "2", u"c": "3"} 

I dati vengono importati dal database postgreSQL in questo formato. Qualche aiuto o idee con questo problema? c'è un modo per convertire Unicode?

Dividi / Esplodi una colonna di dizionari in colonne separate con i panda __dict__: Questions

Dividi / Esplodi una colonna di dizionari in colonne separate con i panda exp: Questions

Shop

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Best laptop for Minecraft

$590

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method