1 回答

TA貢獻1780條經驗 獲得超1個贊
我認為您需要聚合sum
- 默認情況下排除所有非數字列,因此您可以通過DataFrame.reindex
原始列添加它們,并通過以下方式替換缺失值ALL
:
print (df.groupby('Time', as_index=False).sum())
? ?Time? Temperature? Pressure? Speed
0? ? ?1? ? ? ? ? 9.3? ? ? ?3.3? ? ?60
1? ? ?2? ? ? ? ? 9.6? ? ? ?3.3? ? ?63
2? ? ?3? ? ? ? ? 9.9? ? ? ?3.3? ? ?66
3? ? ?4? ? ? ? ?10.2? ? ? ?3.3? ? ?69
4? ? ?5? ? ? ? ?10.5? ? ? ?3.3? ? ?72
df = df.groupby('Time', as_index=False).sum().reindex(df.columns, axis=1, fill_value='ALL')
print (df)
? Region? Time Region_Code? Temperature? Pressure? Speed
0? ? ALL? ? ?1? ? ? ? ?ALL? ? ? ? ? 9.3? ? ? ?3.3? ? ?60
1? ? ALL? ? ?2? ? ? ? ?ALL? ? ? ? ? 9.6? ? ? ?3.3? ? ?63
2? ? ALL? ? ?3? ? ? ? ?ALL? ? ? ? ? 9.9? ? ? ?3.3? ? ?66
3? ? ALL? ? ?4? ? ? ? ?ALL? ? ? ? ?10.2? ? ? ?3.3? ? ?69
4? ? ALL? ? ?5? ? ? ? ?ALL? ? ? ? ?10.5? ? ? ?3.3? ? ?72
編輯:對于自定義替換缺失值,請DataFrame.fillna
與字典一起使用 - 具有替換值的列名稱:
d = {'Region':'GLOBAL','Region_Code':'ALL'}
df1 = df.groupby('Time', as_index=False).sum().reindex(df.columns, axis=1).fillna(d)
print (df1)
? ?Region? Time Region_Code? Temperature? Pressure? Speed
0? GLOBAL? ? ?1? ? ? ? ?ALL? ? ? ? ? 9.3? ? ? ?3.3? ? ?60
1? GLOBAL? ? ?2? ? ? ? ?ALL? ? ? ? ? 9.6? ? ? ?3.3? ? ?63
2? GLOBAL? ? ?3? ? ? ? ?ALL? ? ? ? ? 9.9? ? ? ?3.3? ? ?66
3? GLOBAL? ? ?4? ? ? ? ?ALL? ? ? ? ?10.2? ? ? ?3.3? ? ?69
4? GLOBAL? ? ?5? ? ? ? ?ALL? ? ? ? ?10.5? ? ? ?3.3? ? ?72
添加回答
舉報