我有以下數(shù)據(jù)框,其中包含用戶在 2 周內(nèi)(從 -7 到 7 天)發(fā)布的帖子數(shù)量。我想創(chuàng)建另一個(gè)數(shù)據(jù)框,該數(shù)據(jù)框應(yīng)該具有每天發(fā)布的平均帖子數(shù)。我編寫了以下代碼,但它返回了一個(gè)包含 1 列的系列而不是 Dataframe。所需的 Dataframe 應(yīng)有 2 個(gè)單獨(dú)的列,分別為day和mean。數(shù)據(jù)框的一部分 (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代碼(獲取每日平均帖子數(shù))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這個(gè)輸出是正確的,唯一的問(wèn)題是它是一個(gè)系列。預(yù)期輸出應(yīng)有 2 個(gè)單獨(dú)的列,day如圖mean所示。預(yù)期輸出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貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
Series.rename_axis
與 一起使用Series.reset_index
,因此不需要設(shè)置新的列名稱:
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)
添加回答
舉報(bào)
0/150
提交
取消