我有以下數據框,其中包含用戶在 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)
添加回答
舉報
0/150
提交
取消