2015-03-26 3 views
0

Я пишу скрипты в панде, но я не смог извлечь правильный результат, который я хочу. здесь это проблема:Python Panda TIme series re sampling

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

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

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

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

в DEMO1 и столбце demo2 я хочу считать регулярные записи и запись, которая начинается с и. для июня есть 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) 

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

+1

Просьба указать исходные исходные данные и код, который вы пробовали – EdChum

ответ

0

Для 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.

+0

Я не получаю ответ – user3930865

+0

@ user3930865 Вам действительно тяжело помочь вам, если вы не включите некоторые исходные входные данные или больше кода. – leekaiinthesky

+0

Привет .. Я обновил код – user3930865

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