2017-02-22 23 views
1

Итак, я просто изучаю Python, и я столкнулся с небольшим недостатком, Я работаю над набором данных, содержащим 447 регионов в Европе и (после очистки данных) около 200 000 фрахта поездки между этими регионами с разным количеством грузов.Агрегирование поездок в поточную сетевую карту данных

Мне нужно построить две матрицы из этих данных;

1) Агрегированные поездки между областями (возможно в режиме)

2) Aggregated поездок между странами (таким образом, без транспорта внутри страны)

пример данных поездки:

From To Mode Volume_ton 
    1  2  1  371246 
    7  423 2  10587 
    245 123 1  6841 

(так в и из: 447 регионов, режим: дорога = 1 рельс = 2,

Как использовать координаты «От» и «» для создания нового кадра данных, который объединяет все поездки по той же комбинации в следующем виде:

# 0 1 2 3 4 5 6 ... 
0 
1 
2 
3 
4 
... 

Где ряды Origin и столбцы являются направления

Следующий вопрос будет, как тогда агрегировать это в стране с матрицей страны. У номеров есть коды, прикрепленные к ним, и я создал словарь.

ответ

0

Трудно сказать наверняка без более воспроизводимого примерного кадра данных. Но я бы сделал это:

totals = (
    pandas.groupby(by=['To', 'From'])['Volume_ton'] 
     .sum() 
     .unstack(level='From') 
) 
+0

Привет, Пол, спасибо за ваше мнение. Я пытался ставить этот код: df_freg_road \t \t = df_flow_road.groupby ([ 'To', 'С'] [ ''] Volume_ton \t \t \t \t \t \t .sum() \t \t \t \t \t \t .unstack (уровень = 'От') \t \t \t \t \t \t) Но это дало мне следующую ошибку: TypeError: индексы списка должны быть целыми или фрагментами, а не str Любая идея, как это можно исправить? –

+0

@Aguywhostudieslogistics «Трудно сказать точно без более воспроизводимого примера dataframe» –

+0

@Aguywhostudieslogistics см. Раздел «Задаваемые вопросы» в вики pandas http://stackoverflow.com/tags/pandas/info –

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