看看下面的Pandas数据框,它显示了不同制造商和车型年份的汽车销量:
df = pd.DataFrame({'Y17': [ 1, 2, 1, 1, 0, 0, 1, 2, 2, 0],
'Y18': [ 0, 0, 1, 1, 1, 0, 0, 0, 0, 1],
'Make': ['Ford', 'Jeep', 'BMW', 'BMW', 'Mazda', 'Jeep', 'Chevy', 'BMW', 'Mazda','Ford']})
Make Y17 Y18
Ford 1 0
Jeep 2 0
BMW 1 1
BMW 1 1
Mazda 0 1
Jeep 0 0
Chevy 1 0
BMW 2 0
Mazda 2 0
Ford 0 1每一行都属于特定商店的销售额(未记录)。
我想要透视这个数据帧来获得条目的数量,比如index是"make“,列是"year”和"number of sales“的组合(多级列就可以了)。输出应该是这样的:
Y17 Y18
0 1 2 0 1 2
Make
BMW 0 2 1 1 2 0
Chevy 0 1 0 1 0 0
Ford 1 1 0 1 1 0
Jeep 1 0 1 2 0 0
Mazda 1 0 1 1 1 0发布于 2019-04-13 08:46:55
先使用melt,然后使用crosstab
s=df.melt('Make')
pd.crosstab(s.Make,[s.variable,s.value]).stack().fillna(0).unstack()
variable Y17 Y18
value 0 1 2 0 1 2
Make
BMW 0 2 1 1.0 2.0 0.0
Chevy 0 1 0 1.0 0.0 0.0
Ford 1 1 0 1.0 1.0 0.0
Jeep 1 0 1 2.0 0.0 0.0
Mazda 1 0 1 1.0 1.0 0.0https://stackoverflow.com/questions/55660893
复制相似问题