输入数据框:
case constant number code
761e7 C20 3570 A
761e7 C20 2780 A
761e7 C20 7150 A
761e7 C20 2950 A
761e7 C20 3570 B
761e7 C20 2780 B
761e7 C20 7150 B
761e7 C20 2950 B
761e7 C21 3000 A
761e8 C20 3570 A
761e8 C20 2780 A
761e8 C20 7150 A
761e8 C20 2950 A
761e8 C14 3570 B
761e8 C14 2780 B
761e8 C14 7150 B
尝试将重复的Numbers列转换为基于其他列的多个列。
熊猫枢轴转换给我一个ValueError,如图所示
df = final_df.pivot(index='case', columns='number')
ValueError: Index contains duplicate entries, cannot reshape
预期输出:
case constant code number1 number2 number3 number4 number5
761e7 C20 A 3570 2780 7150 2950 0
761e7 C21 A 0 0 0 0 3000
761e7 C20 B 3570 2780 7150 2950 0
761e8 C20 A 3570 2780 7150 2950 0
761e8 C14 B 3570 2780 7150 0 0
答案 0 :(得分:1)
一种更普通的方法是让您的列名称为数字值,并且行中包含计数-例如:
data["alternatives"]
屈服
df.pivot_table(index=['case','constant','code'],
columns='number', aggfunc=len).reset_index()
答案 1 :(得分:1)
IIUC,尝试:
case constant code number1 number2 number3 number4
0 761e7 C20 A 3570 2780 7150 2950
1 761e7 C20 B 3570 2780 7150 2950
2 761e7 C21 A 3000 0 0 0
3 761e8 C14 B 3570 2780 7150 0
4 761e8 C20 A 3570 2780 7150 2950
输出:
subcribe()