亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Python中通過平均值聚合Dataframe的值?

如何在Python中通過平均值聚合Dataframe的值?

嗶嗶one 2023-10-26 15:14:32
我有以下數據框,其中包含用戶在 2 周內(從 -7 到 7 天)發布的帖子數量。我想創建另一個數據框,該數據框應該具有每天發布的平均帖子數。我編寫了以下代碼,但它返回了一個包含 1 列的系列而不是 Dataframe。所需的 Dataframe 應有 2 個單獨的列,分別為day和mean。數據框的一部分 (df)UserId          Date                -7  -6  -5  -4  -3  -2  -1  0   1   2   3   4   5   6   787      2011-05-10 18:38:55.030     0   0   0   0   0   0   1   0   0   0   0   0   0   0   0487     2011-11-29 14:46:12.080     0   0   1   0   0   0   0   0   0   0   0   0   0   0   021      2012-03-02 14:35:06.867     0   1   0   1   2   0   2   2   0   1   2   2   1   3   1代碼(獲取每日平均帖子數)df.iloc[:,2:].mean()代碼輸出-7  0-6  0.33-5  0.33-4  0.33-3  0.66-2  0-1  10   0.661   02   0.333   0.664   0.665   0.336   17   0.33這個輸出是正確的,唯一的問題是它是一個系列。預期輸出應有 2 個單獨的列,day如圖mean所示。預期輸出day mean-7  0-6  0.33-5  0.33-4  0.33-3  0.66-2  0-1  10   0.661   02   0.333   0.664   0.665   0.336   17   0.33
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

Series.rename_axis與 一起使用Series.reset_index,因此不需要設置新的列名稱:


df1 = df.iloc[:,2:].mean().rename_axis('day').reset_index(name='mean')

print (df1)

? ?day? ? ? mean

0? ?-7? 0.000000

1? ?-6? 0.333333

2? ?-5? 0.333333

3? ?-4? 0.333333

4? ?-3? 0.666667

5? ?-2? 0.000000

6? ?-1? 1.000000

7? ? 0? 0.666667

8? ? 1? 0.000000

9? ? 2? 0.333333

10? ?3? 0.666667

11? ?4? 0.666667

12? ?5? 0.333333

13? ?6? 1.000000

14? ?7? 0.333333

編輯:使用seaborn 11:


sns.lineplot(data=df1, x = 'day', y = 'mean', err_style="bars",ci=68)


查看完整回答
反對 回復 2023-10-26
  • 1 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號