2014-09-02 5 views
0

у меня есть dataframe с двумя функциями колонки: startneighborhood и часИспользование GroupBy построить dataframe со значением эпизодам другого столбца

hour может принимать любое значение от 1-24, т.е. [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]

startneighborhood может 37 различных вариантов соседства.

Я хочу найти количество часов для каждого района и использовать «час» в качестве индекса.

Таким образом, моя матрица будет состоять из 24 строк х 37 столбцов, с массивом 1:24 часов в качестве моего индекса и 37-й окрестности в качестве имен столбцов.

Как я могу использовать Pandas для выполнения этого вычисления? Я немного потерял самый быстрый способ.

Я построил dataframe, с именем индекса и названиями окрестностей в качестве имен столбцов. Теперь я просто нужно добавить значения ..

ответ

2

Im немного смущает вопрос, но я думаю, что вы хотите сделать, это перекрестный

import pandas as pd 
df = <...> #construct your dataframe 
table = pd.crosstab(index=df.hour,columns=df.startneighborhood) 

Это даст вам таблицу 24x37, где каждый элемент - это счет количества вхождений этой комбинации часа и начала соседства.

+0

Получение этой ошибки: TypeError: crosstab() получил неожиданный аргумент ключевого слова 'index' –

+1

Это странно. В какой версии Панд вы работаете? Вот ссылка на документы для кросс-таблицы в 0.14.1 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.crosstab.html – willemolding

Смежные вопросы