python - 从两个 Pandas 字段创建字典字段
问题描述
假设我有一个数据框,例如:
time action player ...[other fields]
----------------------------------------------
10:00 Buy A
10:00 Hold B
09:45 Sell A
09:45 Buy B
09:45 Hold A
09:30 Hold A
我可以创建一个动作列表df.groupby('time)['action'].apply(list)
我想创建一个从/聚合time
并创建字典的字段。action
player
所以预期的输出是:
time action ...[other fields]
----------------------------------------------
10:00 {A:Buy,B:Hold}
09:45 {A:[Sell,Hold],B:Buy}
09:30 {A:Hold}
也许像df.groupby('time)['action'].apply(dict,player=action)
什么?
解决方案
你很接近......set_index
当你的时候,你就是这样玩的groupby
,而且agg(dict)
你有适合你的听写的键。
df.set_index('player').groupby('time')['action'].agg(dict)
time
09:30 {'A': 'Hold'}
09:45 {'A': ['Sell', 'Hold'], 'B': 'Buy'}
10:00 {'A': 'Buy', 'B': 'Hold'}
推荐阅读
- excel - 文本按空格和一半文本分割
- python - 如何修复 'print("%s:" % h, end=" ", file=self._fp)' SyntaxError: python2.7 中的无效语法
- javascript - 通过使用与上传文件夹相同的文件夹结构进行压缩的 Javascript 上传文件夹
- ruby-on-rails - 在 Rails-5 中按数组列值分组
- linux-kernel - Linux在哪里调用摄像头驱动进行图像传输
- ios - 可以从网页 URL 和本地目录按文件名加载图像的扩展
- javascript - PHP - 内置图片视图缩放功能
- android - 尝试膨胀自定义视图类android时出现错误android.view.InflateException
- amazon-web-services - ADFS - 将 adfs 默认登录页面更改为 aws 控制台登录页面
- javascript - 当用户返回上一页时,有没有办法调用函数?