Dataframe数据变换

手头有10个城市的空气质量数据,每个城市空气质量数据包括PM25、PM10、SO2、NO2、CO、O3,大概有一年的数据。
数据的结构大概是:
          date                                type         城市1       城市2     城市3       城市4 。。。。。。 
         2021-01-01 00:00:00     PM25
         2021-01-01 00:00:00      PM10
         2021-01-01 00:00:00     SO2
         2021-01-01 00:00:00     NO2
         2021-01-01 00:00:00      CO
         2021-01-01 00:00:00      O3
           .........

       2021-12-30 23:00:00       PM25
        2021-12-30 23:00:00      PM10
        2021-12-30 23:00:00      SO2
       2021-12-30 23:00:00       NO2
       2021-12-30 23:00:00      CO
       2021-12-30 23:00:00      O3
运行结果及报错内容
我现在已经把数据读进来了,想要转换一下数据统计格式。最近对python感兴趣,但是对python实在不了解,如果用R语言,可以用group_by()和summarize()等函数就能实现。现在想要转换为如下格式:麻烦哪位大佬帮我写一行代码,谢谢。我试着用长宽转换,stack、melt和plvot,没有成功,感觉不是长宽数据的转换形式。
我想要达到的结果:
          date                                城市         PM25     PM10      SO2    NO2      CO    O3      
         2021-01-01 00:00:00     城市1
         2021-01-01 00:00:00      城市2
         2021-01-01 00:00:00     城市3
         2021-01-01 00:00:00     城市4
         2021-01-01 00:00:00      城市5
         2021-01-01 00:00:00      城市6
           .........

       2021-12-30 23:00:00       城市1
        2021-12-30 23:00:00      城市2
        2021-12-30 23:00:00      城市3
       2021-12-30 23:00:00       城市4
       2021-12-30 23:00:00      城市5
       2021-12-30 23:00:00      城市6