我有一个像下面这样的数据框
我想像下面这样转换它
它是一个双列索引转换,我不介意哪个价格/数量或日期是列索引的第一级。我认为日期是最高的,并按价格/数量拆分,但无法在此处创建这样的表格。它是一个包含大约一百万行和一年中所有日期的数据框,所以您对最有效的代码有什么想法吗?这?空单元格也可以是 0s
样本数据
客户 ID | PROD_ID | 价格 | 日期 | 数量 |
---|---|---|---|---|
123 | x | 1 | 31-12-20 | 5 |
123 | x | 1 | 1-1-21 | 5 |
123 | x | 1 | 2-1-21 | 7 |
123 | y | 2 | 2-1-21 | 11 |
789 | z | 5 | 1-1-21 | 22 |
256 | 一 | 4 | 1-1-21 | 9 |
324 | b | 4 | 1-1-21 | 16 |
789 | z | 5.5 | 2-1-21 | 22 |
324 | 一 | 4.5 | 2-1-21 | 23 |
324 | e | 8 | 2-1-21 | 3 |
答案 0 :(得分:1)
使用pandas.pivot_table
pd.pivot_table(
df,
values=['PRICE', 'QUANTITY'],
index=['CID', 'PROD_ID'],
columns=['DATE'],
aggfunc=sum
)
输出
PRICE QUANTITY
DATE 1-1-21 2-1-21 31-12-20 1-1-21 2-1-21 31-12-20
CID PROD_ID
123 x 1.0 1.0 1.0 5.0 7.0 5.0
y NaN 2.0 NaN NaN 11.0 NaN
256 a 4.0 NaN NaN 9.0 NaN NaN
324 a NaN 4.5 NaN NaN 23.0 NaN
b 4.0 NaN NaN 16.0 NaN NaN
e NaN 8.0 NaN NaN 3.0 NaN
789 z 5.0 5.5 NaN 22.0 22.0 NaN