web-dev-qa-db-fra.com

ajouter un dictionnaire au cadre de données

J'ai une fonction qui retourne un dictionnaire comme celui-ci:

{'truth': 185.179993, 'day1': 197.22307753038834, 'day2': 197.26118010160317, 'day3': 197.19846975345905, 'day4': 197.1490578795196, 'day5': 197.37179265011116}

J'essaye d'ajouter ce dictionnaire à une base de données comme ceci:

output = pd.DataFrame()
output.append(dictionary, ignore_index=True)
print(output.head())

Malheureusement, l’impression du cadre de données crée un cadre de données vide. Des idées?

9
cs0815

Vous n'attribuez pas la valeur au résultat.

output = pd.DataFrame()
output = output.append(dictionary, ignore_index=True)
print(output.head())
16
alex

Je ne sais pas ce que tu veux.

Mais si vous voulez lire ceci dict comme le constructeur lirait un dict d'entrée, faites juste

pd.DataFrame([d])

qui est le même que

df.append([d]) # same as df.append(d, ignore_index=True)

Toutes ces sorties

    day1        day2        day3        day4        day5        truth
0   197.223078  197.26118   197.19847   197.149058  197.371793  185.179993

Remarquerez que df.append renvoie un nouveau cadre de données (par opposition à list.append, qui change la liste sur place et retourne None), vous devez donc la réaffecter à df.

Si vous voulez que la cellule contienne ce dictionnaire, faites simplement

df = pd.DataFrame()
df['n'] = [d]

qui produirait

    n
0   {'truth': 185.179993, 'day1': 197.223077530388...
1
rafaelc