Повторная выборка серии Python Panda TIme

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

я могу прочитать эти данные из файла CSV. Здесь вы можете найти структуру таблицы

http://postimg.org/image/ie0od7ejr/

Я хочу, чтобы этот вывод из данных таблицы выше

Month     Demo1 Demo 2
June 2013 3     1    
July 2013 2     2

в столбцах Demo1 и Demo2 я хочу подсчитать обычную запись и запись, начинающуюся с u. на июнь всего 3 обычных записи, а 1 запись начинается с u.

до сих пор я написал этот код.

   import sqlite3
   from pylab import *       
   import numpy as np
   import matplotlib.pyplot as plt
   import matplotlib.dates as mdates
   import datetime as dt

   conn = sqlite3.connect('Demo2.sqlite')
   df = pd.read_sql("SELECT * FROM Data", conn)
   df['DateTime'] = df['DATE'].apply(lambda x: dt.date.fromtimestamp(x))

   df1 = df.set_index('DateTime', drop=False)

Спасибо за помощь. Конечным результатом будет гистограмма. Я могу нарисовать график из вывода, о котором я упоминал выше.


person user3930865    schedule 26.03.2015    source источник
comment
Пожалуйста, опубликуйте необработанные входные данные и код, который вы пробовали   -  person EdChum    schedule 26.03.2015


Ответы (1)


Для resample вы можете определить две функции агрегации следующим образом:

def countU(x):
    return sum(i[0] == 'u' for i in x)

def countNotU(x):
    return sum(i[0] != 'u' for i in x)

print df.resample('M', how=[countU, countNotU])

В качестве альтернативы рассмотрим groupby.

person leekaiinthesky    schedule 27.03.2015
comment
я не понимаю твоего ответа - person user3930865; 27.03.2015
comment
@user3930865 user3930865 Вам действительно сложно помочь, если вы не включите некоторые исходные данные или дополнительный код. - person leekaiinthesky; 27.03.2015
comment
Что произойдет, если вы попробуете то, что я вам дал? Это дает неверный результат? Это вызывает ошибку? Пожалуйста, предоставьте конкретный отзыв, иначе я не смогу узнать, как пересмотреть свой предыдущий ответ. - person leekaiinthesky; 27.03.2015
comment
что такое х в вашем ответе? - person user3930865; 27.03.2015
comment
Я определил две функции агрегации. Затем я вызываю их в resample. Когда вы делаете вызов resample, столбцы вашего фрейма данных передаются агрегатору как x, а затем функции возвращают, сколько элементов столбца начинаются или не начинаются с «u». - person leekaiinthesky; 27.03.2015