【发布时间】:2021-12-08 22:50:27
【问题描述】:
假设我有以下数据框:
| Location | Type | Take | Num |
|---|---|---|---|
| One | A | 2016-01-01 | 1 |
| One | B | 2016-01-01 | 2 |
| One | C | 2016-01-01 | 3 |
| One | A | 2016-01-01 | 4 |
| One | B | 2016-01-01 | 5 |
| One | C | 2016-01-01 | 6 |
我想按位置分组并键入 Num 值并求和。我想保持 Take col 不变,如下所示:
| Location | Type | Take | Num |
|---|---|---|---|
| One | A | 2016-01-01 | 5 |
| One | B | 2016-01-01 | 7 |
| One | C | 2016-01-01 | 9 |
我尝试了以下方法:
df=df.groupby(['Location','Type'], as_index = False).agg({'Num':'sum','Take':'first'})
它不工作并返回以下错误: TypeError: 必须是 str,而不是 int
提前感谢您的任何提示!
【问题讨论】:
-
对我来说很好
-
您可能应该检查数据框中包含的每个元素的类型。这很可能是来自“Num”或“Take”IMO 中不一致的类型的错误,但由于我们没有您使用的确切数据,因此无法真正检查它
-
我刚刚检查了我拥有的数据的 info():所有 cols 似乎都被定义为 Object