pandas - 按组更改数据框
问题描述
我有一个看起来像这样的熊猫数据框
activity time date
0 Phone 04:00 20210810
1 Phone 08:30 20210810
2 Coffee 10:30 20210810
3 Lunch 04:00 20210810
4 Phone 10:30 20210810
5 Phone 04:00 20210810
6 Lunch 08:30 20210810
7 Lunch 10:30 20210810
0 Phone 08:45 20210811
1 Pooping 08:50 20210811
2 Coffee 10:30 20210811
3 Lunch 04:00 20210811
4 Phone 10:30 20210811
5 Meeting 04:00 20210811
6 Lunch 08:30 20210811
7 Lunch 10:30 20210811
我需要将其更改为:
date activity time
20210810 Phone 04:00
08:30
10:30
04:00
Coffee 10:30
Lunch 04:00
08:30
10:30
20210811 Phone 08:45
10:30
Pooping 08:50
Coffee 10:30
Meeting 04:00
Lunch 04:00
08:30
10:30
基本上按日期、活动排序,然后为同一类型添加“”。
解决方案
设置为索引并排序:
df.set_index(['date', 'activity']).sort_index()
或者,如果还需要对值进行排序:
df.set_index(['date', 'activity']).sort_values(by='time').sort_index()
默认情况下,在 jupyter/ipython 中,索引将仅显示连续行的第一个值。如果您需要其他格式,请更新您的问题。
推荐阅读
- reactjs - 在 redux saga 生成器的 map 中解析 promise(s)
- entitlements - 将数据推送到 Open Policy Agent 时如何处理容器重启
- json - Angular,如何订阅嵌套的 JSON 对象?
- odata - 如何将 $filter 添加到 XML 中的 OData 聚合绑定
- javascript - 如何重用一个组件确实在多个组件之间挂载了等效的钩子
- xml - XSL 将 XML 转换为更小的 XML
- node.js - 使用 NodeJS/Puppeteer 下载多个图像
- python - 为什么在尝试计算具有较大初始值的值时总是出现溢出错误?
- python - 使用 Cmake 配置暗网时出错
- linux - “中断处理程序的中断服务程序”是什么意思?