gpt4 book ai didi

python - 如何根据星期几求平均值

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:14 24 4
gpt4 key购买 nike

下面的代码

test_df['Started'] = pd.to_datetime(test_df['Started'])
test_df['day count'] = test_df['Started'].apply(lambda x: x.strftime('%A'))
test_day_count = test_df['day count'].value_counts()
print(test_day_count)

返回

Thursday     25
Friday 19
Saturday 13

这些值是当天开始的测试数量。我想找到一周中每一天的 mean() 测试分数。

我尝试将均值添加到第三行以及 [] 中成绩所在的列的名称

test_df['Started'] = pd.to_datetime(test_df['Started'])
test_df['day count'] = test_df['Started'].apply(lambda x:x.strftime('%A'))
test_day_count = test_df['day count'].value_counts().mean(test_df['marks'])
print(test_day_count)

我得到了错误TypeError: 'Series' 对象是可变的,因此它们不能被散列

最佳答案

将您的 strftime('%A') 用作 groupby 参数:

icma_df.marks.groupby(icma_df['Started'].dt.strftime('%A')).mean()

示范

icma_df = pd.DataFrame(dict(marks=np.random.rand(100),
Started=pd.date_range('2012-12-31', periods=100, freq='B')))

icma_df.marks.groupby(icma_df['Started'].dt.strftime('%A')).mean()

正如@root 所指出的,这也有效并且看起来更好,可能更快

icma_df.marks.groupby(icma_df['Started'].dt.weekday_name).mean()

Started
Friday 0.428581
Monday 0.443394
Thursday 0.485658
Tuesday 0.325027
Wednesday 0.506592
Name: marks, dtype: float64

关于python - 如何根据星期几求平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40877556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com