У меня есть кадр данных с user_ids, который хранится как индексированная frame_table в HDFStore. Также в этом файле HDF есть еще одна таблица с действиями, которые пользователь взял. Я хочу захватить все действия, предпринятые 1% пользователей. Процедура выглядит следующим образом:Выбор строк из HDFStore по индексу с использованием где
#Get 1% of the user IDs
df_id = store.select('df_user_id', columns = ['id'])
1pct_users = rnd.sample(df_id.id.unique(), 0.01*len(df_id.id.unique()))
df_id = df_id[df_id.id.isin(1pct_users)]
Теперь я хочу вернуться и получить все дополнительную информацию, которая описывает действия, предпринятые этими пользователями из frame_tables одинаково индексироваться df_user_id. Согласно this example и this question я сделал следующее:
1pct_actions = store.select('df_actions', where = pd.Term('index', 1pct_users.index))
Это просто обеспечивает пустой кадр данных. На самом деле, если я скопирую и вставлю пример в предыдущий pandas doc link, я также получаю пустой фрейм данных. Что-то изменилось около Term
в последних пандах? Я на пандах 0.12.
Я не привязан к какому-либо конкретному решению. Пока я могу получить индексы hdfstore из поиска в таблице df_id (что быстро), а затем напрямую вытащить эти индексы из других таблиц фреймов.
Отличный ответ. Я неправильно понял формат аргумента where и не понимал, что он должен быть структурирован как эта координата. Я предположил, что это может быть свободное определение, поданное как массив, список и т. Д. Спасибо за это. – cwharland
Если у вас есть список/массив в 0.13. – Jeff