python - 为某些名称创建具有每天平均值的列
问题描述
我有一个 data.frame,其中包含每天的不同名称和评级,看起来类似于那个小例子:
df1 = pd.DataFrame({
'Date':['2021-01-01', '2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-02', '2021-01-02', '2021-01-03'],
'Name':['Tim, Max', 'Tim', 'Max, Ben', 'Ben, Tim', 'Max', 'Tim, Max, Ben', 'Claude', 'Max, Bob'],
'Ratings':[9.0, 8.0, 5.0, 3.0, 2, 3, 2, 5]})
我尝试创建一个新的 data.frame,其中包含以下名称的列:Tim、Max 和 Ben,其中包含每天的平均收视率。
names = ['Tim', 'Max', 'Ben']
df2 = pd.DataFrame({
'Date':['2021-01-01', '2021-01-02', '2021-01-03'],
'Tim':[8.5, 3, 'NA'],
'Max':[7, 2.5, 5],
'Ben':[5, 3, 'NA']})
我用数据透视表尝试了它,但我为每个唯一的“名称”列条目获得了一个列,但我需要它来分别汇总和分开的名称 Tim、Max 和 Ben。
df1.pivot_table(
values='Ratings', index='Date', columns='Name',
fill_value=0, aggfunc='mean')
非常感谢您的帮助!
解决方案
推荐阅读
- azure - 如何使用 Powershell 7 Get-AzVMImage 获取最新版本
- python - AttributeError: 'XGBClassifier' 对象没有属性 'transform'
- stata - 显示两个变量类别比例的简单条形图
- prolog - Prolog最后一个元素函数返回整个列表
- sql - 将具有相同列名但数据类型不同的表的 2 个实例映射到 EF 6 中的相同模型?
- sql - SQL - 同一张表 - 有 c2.Country <> c.Country - 需要了解
- sql - 如何查看在特定时间范围内有多少流失用户(自上次下订单后 21 天以上)被激活(下订单)的用户?
- oracle - 自治数据库是否满足 HIPAA 要求?
- android - 如何解决 FolioReader 依赖问题
- javascript - TypeError:尝试制作“urban”斜杠命令时无法读取未定义的属性(读取“列表”)