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