Rapide convertir en JSON colonne dans les Pandas dataframe
Je suis en train de lire des données à partir d'une base de données (50k+ lignes) où une colonne est stockée sous forme de JSON. Je veux extraire une pandas dataframe.
L'extrait de code ci-dessous fonctionne très bien mais est assez inefficace et prend vraiment pour toujours lorsqu'il est exécuté sur l'ensemble de la db.
Notez que tous les éléments ont les mêmes attributs et que le JSON ont certains imbriquée attributs.
Comment pourrais-je faire cela plus rapidement?
import pandas as pd
import json
df = pd.read_csv('http://pastebin.com/raw/7L86m9R2', \
header=None, index_col=0, names=['data'])
df.data.apply(json.loads) \
.apply(pd.io.json.json_normalize)\
.pipe(lambda x: pd.concat(x.values))
###this returns a dataframe where each JSON key is a column
Serait
Pouvez-vous stocker vos données collées dans un autre (tout type de standard) format?
fonctionne, mais qui n'a pas d'aplatir le dict
si possible, je préfèrerais ne pas modifier le script de grattage
df.data.apply(lambda x: pd.Series(json.loads(x)))
faire?Pouvez-vous stocker vos données collées dans un autre (tout type de standard) format?
fonctionne, mais qui n'a pas d'aplatir le dict
si possible, je préfèrerais ne pas modifier le script de grattage
OriginalL'auteur jodoox | 2016-12-18
Vous devez vous connecter pour publier un commentaire.
json_normalize prend déjà traitées chaîne json ou une pandas série de chaînes.
installation
J'obtiens cette erreur : 'DataFrame" objet n'a pas d'attribut "data"
Le remplacer par votre propre nom de colonne.
OriginalL'auteur piRSquared
Je pense que vous pouvez d'abord convertir
string
colonnedata
àdict
, puis créerlist
denumpy arrays
paret dernier
DataFrame.from_records
:Vérifier une autre réponse 😉
Petite question @jezrael l'ordre de le csv et le df-vous sont à faire à partir de la variable 'a' est le même droit ? premier enregistrement sera premier enregistrement et le deuxième sera le deuxième et ainsi de suite.. vont-ils jamais shuffle ?
Oui, exactement. Il n'y a aucune raison pour
shuffle
OriginalL'auteur jezrael