我想这个问题不太清楚,所以这里有一个例子:给定一个数据框:
| 公司名称 | 公司规模 | 公司活动 |
|---|---|---|
| 7点11分 | 5 | 餐厅 |
| 7点11分 | 5 | 超级市场 |
| 7点11分 | 10 | 超级市场 |
| 高盛 | 100 | 银行 |
| 高盛 | 200 | 餐厅 |
| 高盛 | 200 | 银行 |
我想按公司名称对数据框进行分组,然后将organization_size和organization_acitivity列中的值替换为相应公司和列中出现次数最多的值。
所以最终数据框应该是这样的:
| 公司名称 | 公司规模 | 公司活动 |
|---|---|---|
| 7点11分 | 5 | 超级市场 |
| 高盛 | 200 | 银行 |
我试过这个:
df.groupby("organization_name",group_keys=True)["organization_activity"].apply(lambda x: x.mode())
Run Code Online (Sandbox Code Playgroud)
但它只给了我
“AttributeError:‘SeriesGroupBy’对象没有属性‘mode’”。
有人有更简单的方法来做到这一点的想法吗?