Использование Timegrouper '1M' для группировки и суммирования по столбцам портит мой индекс дат pandas python

Обнаружена ошибка: работают фрагменты кода, размещенные в виде приведенных ниже решений. Проблема, связанная с моими результатами, была связана с источником данных (FEC.GOV). Я нашел это и теперь иду дальше. Большое спасибо за все время, терпение, помощь и т. Д. От сообщества по этому вопросу!

Поскольку были предложены решения для работы с фрагментами, найденными на сайте github, я предоставляю следующую ссылку на оригинальные файлы (http://fec.gov/finance/disclosure/ftpdet.shtml#a2011_2012). Я использую 2008–2014 годы, Файл данных: pas212.zip, Имя данных: (Взносы кандидатов (и другие расходы) из комитетов). Кроме того, как приведенный ниже код можно найти на [https://github.com/Michae108/python-coding.git], Заранее благодарю за любую помощь в решении этой проблемы. Я работал три дня над тем, что должно быть очень простой задачей. Я импортирую и объединяю 4 "|" отдельные файлы значений. Читать как pd.df; установить столбец даты в date.time. Это дает мне следующий вывод:

              cmte_id trans_typ entity_typ state  amount     fec_id    cand_id
date                                                                          
2007-08-15  C00112250       24K        ORG    DC    2000  C00431569  P00003392
2007-09-26  C00119040       24K        CCM    FL    1000  C00367680  H2FL05127
2007-09-26  C00119040       24K        CCM    MD    1000  C00140715  H2MD05155
2007-07-20  C00346296       24K        CCM    CA    1000  C00434571  H8CA37137

Во-вторых, я хочу иметь возможность группировать индекс по частоте за один месяц. Затем я хочу сложить [количество] в соответствии с [trans_typ] и [cand_id].

Вот мой код для этого:

import numpy as np
import pandas as pd
import glob

df = pd.concat((pd.read_csv(f, sep='|', header=None, low_memory=False, \
    names=['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', \
    '12', '13', 'date', '15', '16', '17', '18', '19', '20', \
    '21', '22'], index_col=None, dtype={'date':str}) for f in \
    glob.glob('/home/jayaramdas/anaconda3/Thesis/FEC_data/itpas2_data/itpas2**.txt')))

df.dropna(subset=['17'], inplace=True)  
df.dropna(subset=['date'], inplace=True)  
df['date'] = pd.to_datetime(df['date'], format='%m%d%Y')
df1 = df.set_index('date')
df2 = df1[['1', '6', '7', '10', '15', '16', '17']].copy() 
df2.columns = ['cmte_id', 'trans_typ', 'entity_typ', 'state', 'amount',\
               'fec_id','cand_id']

df2['amount'] = df2['amount'].astype(float)

grouper = df2.groupby([pd.TimeGrouper('1M'), 'cand_id', 'trans_typ'])

df = grouper['amount'].sum()
grouper['amount'].sum().unstack().fillna(0)
#print (df.head())

Вот мой вывод от запуска кода:

    trans_typ   24A     24C     24E     24F     24K     24N     24R     24Z
date    cand_id                                 
1954-07-31  S8AK00090   0   0   0   0   1000    0   0   0
1985-09-30  H8OH18088   0   0   36  0   0   0   0   0
1997-04-30  S6ND00058   0   0   0   0   1000    0   0   0

Как видите, столбец даты испортился после того, как я запустил группу. Я уверен, что мои даты не идут дальше, чем в 2007 году. Я пытался выполнить эту простую задачу: сгруппировать по периодам в 1 месяц, а затем сложить [сумму] по [trans_typ] и [cand_id]. Кажется, это должно быть просто, но я не нашел решения. Я прочитал много вопросов о Stackoverflow и пробовал разные методы для решения этой проблемы. У кого-нибудь есть идеи по этому поводу?

Вот пример моих необработанных данных, если это поможет:

C00409409|N|Q2|P|29992447808|24K|CCM|PERRIELLO FOR CONGRESS|IVY|VA|22945|||06262009|500|C00438788|H8VA05106|D310246|424490|||4072320091116608455
C00409409|N|Q2|P|29992447807|24K|CCM|JOHN BOCCIERI FOR CONGRESS|ALLIANCE|OH|44601|||06262009|500|C00435065|H8OH16058|D310244|424490|||4072320091116608452
C00409409|N|Q2|P|29992447807|24K|CCM|MIKE MCMAHON FOR CONGRESS|STATEN ISLAND|NY|10301|||06262009|500|C00451138|H8NY13077|D310245|424490|||4072320091116608453
C00409409|N|Q2|P|29992447808|24K|CCM|MINNICK FOR CONGRESS|BOISE|ID|83701|||06262009|500|C00441105|H8ID01090|D310243|424490|||4072320091116608454
C00409409|N|Q2|P|29992447807|24K|CCM|ADLER FOR CONGRESS|MARLTON|NJ|08053|||06262009|500|C00439067|H8NJ03156|D310247|424490|||4072320091116608451
C00435164|N|Q2|P|29992448007|24K|CCM|ALEXI FOR ILLINOIS EXPLORATORY COMMITTEE||||||06292009|1500|C00459586|S0IL00204|SB21.4124|424495|||4071620091116385529

Ответы на вопрос(2)

Ваш ответ на вопрос