2015-02-28 2 views
0

У меня есть большой файл CSV, который я извлекаю из двух столбцов из (Month и Canceled) и должен отображать результаты в кадре данных. Месяцы целые (например, январь - 1 в csv) и должны преобразовать его в строку.Pandas groupby rows with csv

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

import pandas as pd 
    data = pd.read_csv('data.csv', encoding='latin-1', usecols=['Month','Cancelled']) 
    grouped = data.groupby(axis=1) 

Ожидаемый выход Я ищу вдоль линий:

   Cancelled 
    January  19891 

Но я в настоящее время получаю:

 Month Cancelled 
    0  1   0 
    1  1   0 
    2  1   0 
+1

Сообщения сырых входных данных достаточно просто воспроизвести вашу проблему, вы не показали, как ваше целое конвертируется в месяц для начала, также вы не группируете ни один столбец, вы заявили, что хотите группировать по столбцу месяца – EdChum

ответ

0

Поскольку вы не отправляли вход строки данные. Давайте рассмотрим этот быстрый пример, чтобы показать, как создавать значения groupby в pandas;

После прочтения данных и размещения в кадре данных вы можете группировать значения на основе одного из столбцов groupby(['month']), а затем применить функцию к этим значениям, Pandas включает в себя ряд общих, таких как mean(), max (), медиана() и т. д .: вы можете использовать, например, sum().

df.groupby(['month']).sum() 

Или передать любую другую функцию с помощью агрегата

df.groupby(['month']).aggregate(numpy.sum) 

import pandas as pd 
from io import StringIO 


data="""month cancelled 
0 1  1 
1 1  0 
2 0  1 
3 1  1 
4 0  0 
5 1  1 
6 1  1 
7 2  1 
8 2  1 
9 1  1""" 


df= pd.read_csv(StringIO(data.decode('UTF-8')),delim_whitespace=True) 
print df.groupby(['month']).sum() 

РЕЗУЛЬТАТА

 cancelled 
month   
0    1 
1    5 
2    2