【发布时间】:2021-01-06 11:31:51
【问题描述】:
我正在使用 Python 中的 Pandas DataFrame,目前我有以下架构:
>>> import pandas as pd
>>> d = {'date': ['15-Sep','16-Sep','17-Sep','18-Sep','15-Sep','16-Sep','17-Sep','18-Sep','15-Sep','16-Sep','17-Sep','18-Sep'],
... 'user': ['A','A','A','A','B','B','B','B','C','C','C','C'],
... 'sales': [5,8,6,7,9,12,11,11,11,15,8,6]}
>>> df = pd.DataFrame(data=d)
>>> df
date user sales
0 15-Sep A 5
1 16-Sep A 8
2 17-Sep A 6
3 18-Sep A 7
4 15-Sep B 9
5 16-Sep B 12
6 17-Sep B 11
7 18-Sep B 11
8 15-Sep C 11
9 16-Sep C 15
10 17-Sep C 8
11 18-Sep C 6
并且想转换(转置?)以获得每个用户的每日差异,参考上一天,按照上面的例子,想得到这个:
>>> d = {'user': ['A','B','C'],
... '16-Sep': [3,3,4],
... '17-Sep': [-2,-1,-7],
... '18-Sep': [1,0,-2]}
>>> df = pd.DataFrame(data=d)
>>> df
user 16-Sep 17-Sep 18-Sep
0 A 3 -2 1
1 B 3 -1 0
2 C 4 -7 -2
此目标表表示用户 A 在 9 月 17 日售出了 -2 件商品,与 9 月 16 日相比。
最好的方法是什么? 关于我如何做到这一点的任何例子?我找不到类似的问题。
【问题讨论】:
标签: python pandas date dataset transpose