Как получить доступ к встроенным объектам json в Pandas DataFrame?

TL; DR Если загруженные поля в DataFrame Pandas содержат документы JSON, как их можно работать с помощью Pandas?

В настоящее время я непосредственно отбрасываю результаты json / dictionary из библиотеки Twitter ( twython ) в коллекцию Mongo (называемую здесь пользователями).

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 style (напрямую доступ к атрибутам). Есть ли способ?

поле статуса

EDIT: Что-то вроде df ['status: text']. Статус имеет такие поля, как «текст», «created_at». Одним из вариантов может быть сглаживание / нормализация этого json-поля, как этот запрос на растяжение Wes McKinney.

One Solution collect form web for “Как получить доступ к встроенным объектам json в Pandas DataFrame?”

Одно из решений – просто разбить его конструктором Series:

 In [1]: df = pd.DataFrame([[1, {'a': 2}], [2, {'a': 1, 'b': 3}]]) In [2]: df Out[2]: 0 1 0 1 {u'a': 2} 1 2 {u'a': 1, u'b': 3} In [3]: df[1].apply(pd.Series) Out[3]: ab 0 2 NaN 1 1 3 

В некоторых случаях вы захотите выполнить это в DataFrame вместо строки dict:

 In [4]: dict_col = df.pop(1) # here 1 is the column name In [5]: pd.concat([df, dict_col.apply(pd.Series)], axis=1) Out[5]: 0 ab 0 1 2 NaN 1 2 1 3 

Если он идет глубже, вы можете сделать это несколько раз …

  • Получение упоминаний и DM через twitter stream API 1.1? (Использование twython)
  • ReadTimeoutError: Twitter Streaming API
  • Получите все идентификаторы следящего устройства в Twitter от Tweepy
  • Как получить твиттер-последователей с помощью Twython?
  • Сообщение «API REST Twitter Twitter v1 больше неактивен. Перейдите на API v1.1 '
  • Tweepy Twitter получает ответы на все твиты конкретного пользователя
  • Как сохранить секрет ключа разработчика в сценарии Python, который размещен на GitHub
  • Отслеживание ключевых слов в прямом эфире твитов
  •  
    Interesting Posts for Van-Lav

    Как исправить эту ошибку? TypeError: 'str' не поддерживает интерфейс буфера

    Скрипт с использованием многопроцессорного модуля не завершается

    Несколько блоков с одинаковым именем в Jinja2

    Отображение контуров перед поверхностью в matplotlib

    Как я могу регистрировать всю исходящую электронную почту в Django?

    Как определить рекурсивную функцию для объединения двух отсортированных списков и возврата нового списка с возрастающим порядком в Python?

    чтение команды os.popen (команда) в строку

    Django «эмулировать» поведение триггера базы данных для массового вставки / обновления / удаления

    Одинарные и двойные кавычки в JSON

    Ошибка подключения pipit

    простой способ проверить, являются ли элементы списка или набора единичными?

    shapefile и matplotlib: выбор полигональной коллекции координат шейп-файла

    Как подклассифицировать список Python без проблем типа?

    Понимание странного логического поведения индексации 2d-массива в numpy

    Изменение цвета фона кнопки в Kivy

    Python - лучший язык программирования в мире.