python - Pandas groupby 分别制作两列列表
问题描述
我目前有一个包含三列的 DataFrame。为了方便起见,我们称它们为fruit
,sport
和。weather
我想要做的是按fruit
列对 DataFrame 进行分组,并将相应的值设置为sport
和weather
到列表中,以便我们为每个 unique都有对应的sport
和列表。weather
fruit
例如:
# Original DataFrame
fruit sport weather
0 apple baseball sunny
1 banana swimming cloudy
2 apple basketball windy
3 orange football sunny
4 banana hockey windy
# Desired DataFrame
fruit sport weather
0 apple [baseball, basketball] [sunny, windy]
1 banana [swimming, hockey] [cloudy, windy]
2 orange [football] [sunny]
将其中一个列值分组到一个列表中相对简单,但我对如何用两个来做到这一点有点困惑。我该怎么办?提前致谢。
解决方案
您可以groupby
使用构造函数进行聚合list
:
df.groupby('fruit', as_index=False).agg(list)
fruit sport weather
0 apple [baseball, basketball] [sunny, windy]
1 banana [swimming, hockey] [cloudy, windy]
2 orange [football] [sunny]
推荐阅读
- php - PHP Liveserver、Visual Code、SASS 不能一起工作
- google-apps-script - 以前未观察到的“暂时禁用 Google 登录”错误
- angular - 在 Angular 下拉菜单中显示日期数组
- laravel - 如果用户在 Laravel 中注册事件,如何执行功能从数据透视表中扣除可用性数量
- excel - 使用 excel vba 宏将总和扩展到动态范围
- angular - Angular - 模态 NgBootstrap ExpressionChangedAfterItHasBeenCheckedError
- android - 如何删除具有圆形背景的`AppBarLayout`角落中的空白
- jquery - Jquery:隐藏带有计数的单选按钮
- python - 通过抓取推特获取推特账号的关注者数量
- nativescript - 使 AppInsights 与 NativeScript 应用程序一起工作