Есть ли способ сопоставить разные стили даты между строками и столбцами - PullRequest
0 голосов
/ 14 июля 2020

У меня есть два файла, которые я читаю в разных стилях, и я пытаюсь привести их в похожий стиль, чтобы я мог запустить регрессию. В одном есть строки со штатами США, даты для столбцов (в ММ / ДД / ГГГГ) и номер для каждой ячейки в стиле ниже.

|---------------------|------------------|------------------|------------------|
|      State          |     1/1/2020     |     1/2/2020     |     1/3/2020     |
|---------------------|------------------|------------------|------------------|
|          AL         |          3       |          5       |          5       |
|---------------------|------------------|------------------|------------------|
|          AK         |          0       |          2       |          4       |
|---------------------|------------------|------------------|------------------|
|          AR         |          0       |          5       |          3       |
|---------------------|------------------|------------------|------------------|

У меня есть другой, который имеет множество столбцов, включая столбец состояния и столбец даты (в ГГГГ-ММ-ДД со временем в конце) в стиле ниже

|---------------------|------------------|------------------|
|      State          |       Event      |     Date         |
|---------------------|------------------|------------------|
|          TX         |      Event 1     |    2020-03-06    |
|---------------------|------------------|------------------|
|          VA         |      Event 2     |    2020-06-07    |
|---------------------|------------------|------------------|
|          AK         |      Event 3     |    2020-05-22    |
|---------------------|------------------|------------------|

Есть ли способ создать фрейм данных в том же стиле, что и первый файл (со столбцом состояния и столбцом для каждой даты), который подсчитывает, сколько раз событие произошло в определенный день в штате? то есть, если есть 3 события, которые произошли 6 июня в Техасе, ячейка в столбце 6/6/2020 и строке TX содержит 3. Это то, что я пробовал до сих пор, он застревает на первой строке dftemp. Спасибо

df= pd.read_csv('file1')
states=df['State'].unique().tolist()
df2= pd.read_excel('file2', sheet_name='sheet1')
newdf2= pd.DataFrame(columns=df.columns)
for i in range(0,len(states)):
    templist=[states[i]]
    for j in range(1,len(df.columns)):
        dftemp=df2.loc[datetime.strptime(df2['Date'].to_string(), '%Y-%m-%d') == datetime.strptime(df.columns[j].to_string(), '%m/%d/%Y')]
        dftemp=dftemp.loc[dftemp['State']==states[i]
        templist.append(dftemp.shape[0])
    newdf2.append(templist)

                                    

       
...