我有一个看起来像这样的数据框
SHIP_ID LON LAT LABEL_ETA VESSEL_TYPE TIMESTAMP_UTC_MONTH
0 23445 233.226313 0.363567 21858.0 CONTAINER SHIP APR
1 32323 100.200100 -0.457523 21857.0 CONTAINER SHIP JAN
2 55421 191.223145 -0.398676 21855.0 CONTAINER SHIP FEB
3 45672 112.234589 0.438764 21852.0 CONTAINER SHIP DEC
但是,我想通过这种方式实现
SHIP_ID VESSEL_TYPE JAN FEB MAR APR ..... DEC
0 23445 CONTAINER SHIP 102.22 102.22 ...
1 32323 CONTAINER SHIP 102.22 102.22 ...
2 55421 CONTAINER SHIP 102.22 .. ...
3 45672 CONTAINER SHIP 102.22 .. ...
我希望将TIMESTAMP_UTC_MONTH的数据作为月份的列,其中包含每个月的LABEL_ETA的平均值。
LON和LAT也应排除在外。我已经尝试过诸如pivot_table()之类的方法,并且有效!但是要求说我只能使用groupby()方法来做到这一点。
答案 0 :(得分:1)
df.groupby(['SHIP_ID', 'VESEEL_TYPE', 'TIMESTAMP_UTC_MONTH']).LABEL_ETA.mean().unstack().reset_index()
了解有关在pandas' userguide中分组的更多信息
答案 1 :(得分:0)
如果只想获取“每个月的LABEL_ETA的平均值”,则可以简单地使用:
df.groupby('TIMESTAMP_UTC_MONTH').LABEL_ETA.mean()