2015-02-20 4 views
0

Я искал всюду и пытался все, что мог, но не мог получить то, что хочу от своих данных.Работа с Pandas Groupby и несколькими рядами

фон:

У меня есть набор данных, который был получен из данных счетов-фактур. Я массировал эти данные, чтобы добраться до точки, где у меня есть кадр данных pandas, состоящий из шести столбцов. Эти столбцы (и выборка данных ниже):

  • project_id - ID для проекта
  • Project_Type - типа материи работы, выполняемой в проекте.
  • Дата создания - Дата создания проекта (когда проект был начат)
  • счетов-фактур Сроки - Сроки, что счета-фактуры были сгенерированные для
  • проекта Age - возраст каждого счета-фактуры (рассчитанной по проекту даты инициирования)

Образец данных можно найти в this CSV file.

Каждый проект может иметь несколько счетов-фактур, что и вызывает мою проблему.

Что я хочу сделать:

Совокупные по типу проекта и получить минимальное, максимальное, среднее и станд из «Age» для каждого типа проекта. Я думал, что это будет простая группа с использованием столбца Project_Type, но я не могу заставить функции min, max, mean, std работать применительно к этой группе.

Я уверен, что это простая проблема, но я ничего не нашел, решил это для меня.

Любая помощь или указатели оценили.

образец данных:

Project_ID Project_Type Create_Date  Invoice_Dates Age 
25098  Computers  1/11/12 0:00 2/6/12 0:00  26 days 
25098  Computers  1/11/12 0:00 2/29/12 0:00 49 days 
25113  Telecom   1/12/12 0:00 4/30/12 0:00 109 days 
25113  Telecom   1/12/12 0:00 6/30/12 0:00 170 days 
+0

Я понимаю, что может быть трудно увидеть ссылку на файл csv. Вот он: https://www.dropbox.com/s/9kq3lr9cxy1kgsm/test.csv –

ответ

2

Эрик, я не загрузить файл, но я замахнулся на него. Я бы опубликовал первые несколько строк в вашем вопросе, поэтому нам не нужно его загружать.

Да, groupby() был бы хорошим способом. Вы можете указать функции agg в списке, подобном этому

df[['Project_Type','Project Age']].groupby('Project_Type').agg(['min', 
                  'max', 
                  'mean', 
                  'std']) 
+0

Спасибо ... добавил образец данных –

+0

Боб спасибо. Это похоже на то, что я пробовал, но все равно дает мне ошибку. С помощью этой строки выдается аналогичная ошибка «ValueError: все переданные объекты были None» –

+1

Да, я уверен, что dtype Age - это объект или str. Верный? –