我正在阅读的两个文件具有不同的样式,并且我试图将它们设置为相似的样式,以便可以进行回归分析。一个具有美国状态的行,列的日期(以MM / DD / YYYY表示)以及每个单元格的编号,格式如下。
|---------------------|------------------|------------------|------------------|
| State | 1/1/2020 | 1/2/2020 | 1/3/2020 |
|---------------------|------------------|------------------|------------------|
| AL | 3 | 5 | 5 |
|---------------------|------------------|------------------|------------------|
| AK | 0 | 2 | 4 |
|---------------------|------------------|------------------|------------------|
| AR | 0 | 5 | 3 |
|---------------------|------------------|------------------|------------------|
我还有另外一列,其中包括以下样式的状态列和日期列(以YYYY-MM-DD结尾,并带有时间)
|---------------------|------------------|------------------|
| State | Event | Date |
|---------------------|------------------|------------------|
| TX | Event 1 | 2020-03-06 |
|---------------------|------------------|------------------|
| VA | Event 2 | 2020-06-07 |
|---------------------|------------------|------------------|
| AK | Event 3 | 2020-05-22 |
|---------------------|------------------|------------------|
是否有一种方法可以制作与第一个文件相同的样式的数据框(每个状态都有一个状态列和一个日期),该数据框可以计算某状态在某天发生的事件的次数?也就是说,如果6月6日在得克萨斯州发生了3个事件,则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)