我有以下数据框,其中包含用户在 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
提交
取消