TL;DR Pandas DataFrame にロードされたフィールドに JSON ドキュメント自体が含まれている場合、Pandas のような方法でどのように操作できますか?
現在、私は json/dictionary の結果を Twitter ライブラリ ( twython ) から Mongo コレクション (ここでは users と呼ばれます) に直接ダンプしています。
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)
このデータベースにデータを入力した後、ドキュメントを Pandas に読み込みました。
# Pull straight from mongo to pandas
cursor = user_coll.find()
df = pandas.DataFrame(list(cursor))
これは魔法のように機能します:
「ステータス」フィールドの Pandas スタイル (属性に直接アクセス) をマングルできるようにしたいと考えています。方法はありますか?
編集: df['status:text'] のようなもの。ステータスには「text」、「created_at」などのフィールドがあります。Wes McKinney が取り組んでいたこのプル リクエストのように、この json フィールドをフラット化/正規化することが 1 つのオプションです。