TL; DR Se i campi caricati in un DataFrame di Pandas contengono documenti JSON, come possono essere utilizzati in un modo simile a Pandas?Come accedere agli oggetti JSON incorporati in un DataFrame di Pandas?
Attualmente sto direttamente di dumping JSON/risultati del dizionario da una libreria Twitter (twython) in una collezione Mongo (chiamati utenti qui).
from twython import Twython
from pymongo import MongoClient
tw = Twython(...<auth>...)
# Using mongo as object storage
client = MongoClient()
db = client.twitter
user_coll = db.users
user_batch = ... # collection of user ids
user_dict_batch = tw.lookup_user(user_id=user_batch)
for user_dict in user_dict_batch:
if(user_coll.find_one({"id":user_dict['id']}) == None):
user_coll.insert(user_dict)
Dopo aver popolato questo database ho letto i documenti in Panda:
# Pull straight from mongo to pandas
cursor = user_coll.find()
df = pandas.DataFrame(list(cursor))
che funziona come magia:
mi piacerebbe essere in grado di manipolare il ' stato 'campo Stile panda (accesso diretto agli attributi). C'è un modo?
EDIT: Qualcosa di simile a df [ 'stato: testo']. Lo stato ha campi come "testo", "creato_at". Un'opzione potrebbe essere appiattire/normalizzare questo campo json come this pull request a cui Wes McKinney stava lavorando.
Puoi dare un esempio di ciò che vuoi veramente fare? Hai mostrato la colonna 'df ['status']', ma cosa vuoi fare con essa? – BrenBarn
FWIW C'è un PR in questo senso: https://github.com/pydata/pandas/pull/4007 –
Ci sono record annidati negli elementi di 'df.status'? –