我想向現有資料幀添加一個新行,該資料幀由從預先存在的行計算的值組成。我的輸入看起來像這樣:
| 名稱 | 值1 | 值2 | 值3 | 值4 |
|---|---|---|---|---|
| 約翰 | 10 | 30 | 40 | 50 |
| 瑪麗 | 50 | 10 | 30 | 20 |
| 史密斯 | 40 | 20 | 40 | 10 |
現在我想在最后添加一個總計行,但該行不能只包含總和值。像這樣的東西:
| 名稱 | 值1 | 值2 | 值3 | 值4 |
|---|---|---|---|---|
| 累計 | (總和)100 | 總和(60) | (value2.sum/value1.sum)0.6 | (平均) |
提前致謝
uj5u.com熱心網友回復:
使用DataFrame.agg并向 中添加另一個值Series,最后在 中添加新行DataFrame.loc:
s = df.agg({'value1':'sum', 'value2':'sum', 'value4':'mean'})
s['name'] = 'Grand total'
s['value3'] = s['value2'] / s['value1']
df.loc[len(df)] = s
或單獨處理:
s = df[['value1','value2']].sum()
s['name'] = 'Grand total'
s['value3'] = s['value2'] / s['value1']
s['value4'] = df['value4'].mean()
df.loc[len(df)] = s
print (df)
name value1 value2 value3 value4
0 john 10 30 40.0 50.000000
1 mary 50 10 30.0 20.000000
2 smith 40 20 40.0 10.000000
3 Grand total 100 60 0.6 26.666667
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392018.html
