- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个关于将 groupby() 与以下 pandas 数据框的简短示例一起使用的问题。我在这里想要实现的是在保留“days_of_week”和“holiday”列的同时,将每个“store_id”的每个“date”的“amount”值相加。
store_id date amount days_of_week holiday
0 0 2017-11-14 100 1 0
1 0 2017-11-14 -100 1 0
2 1 2017-11-14 122 1 0
3 1 2017-11-19 55 6 1
4 2 2017-11-19 11 6 1
5 2 2017-11-19 32 6 1
所以结果应该如下所示。
store_id date amount days_of_week holiday
0 0 2017-11-14 0 1 0
1 1 2017-11-14 122 1 0
2 1 2017-11-19 55 6 1
3 2 2017-11-19 43 6 1
我试过删除“day_of_week”和“holiday”列,然后使用 groupby() 获取到目前为止每个日期的总和。但这远未达到我想要的结果形式。
train = train.drop(columns=['days_of_week', 'holiday'])
train.groupby(['store_id', 'date'])['amount'].sum()
是否有其他我不知道的方法可以轻松获取第二个示例表单?
最佳答案
您可以使用 panda 聚合函数来实现这一点。见https://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.DataFrameGroupBy.agg.html
以下代码应该适用于您的情况
df_sum = df.groupby(['date','store_id']).agg({'amount':'sum', 'days_of_week': 'first', 'holiday': 'first' }).reset_index()
print(df_sum)
date store_id amount days_of_week holiday
0 2017-11-14 0 0.0 1 0
1 2017-11-14 1 122.0 1 0
2 2017-11-19 1 55.0 6 1
3 2017-11-19 2 43.0 6 1
关于python - Pandas DataFrame Groupby 和改革,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52014853/
我想改革 pig 拉丁成绩。 对于一些 pig 拉丁,让我们说“ dump table1 ”,可以得到以下结果。 (测试1,1.0,Link1 Link2 Link3),在Link1,Link2,Li
我正在寻找一种方便的方法来测试 Reform 的验证基于表单对象。 是否有任何匹配器(比如用于测试 ActiveModel::Validations 的匹配器)来测试 dry-validations
我正在使用 Reform gem 制作一个用于在我的网上商店结帐的表单对象。我有 Checkout 表单,其中包含 Order 模型的属性,该模型与 Address 模型有关联。 问题是 Order
我是一名优秀的程序员,十分优秀!