Melt英语就是熔化,Pivot是转动的意思,原表格
|
zt |
date |
合计 |
企财险 |
家财险 |
车险 |
货运险 |
工程险 |
责任险 |
短期意外险 |
短期健康险 |
船舶险 |
农业险 |
信用险 |
保证险 |
其他险 |
0 |
产险合计 |
2016-09 |
271668.28 |
2979.89 |
900.05 |
201922.92 |
496.02 |
537.98 |
4832.15 |
4167.16 |
29662.65 |
0.0 |
24160.47 |
196.39 |
1800.19 |
12.37 |
1 |
人财险 |
2016-09 |
121711.67 |
1542.56 |
566.86 |
76177.54 |
343.91 |
2.08 |
2611.88 |
522.27 |
25219.82 |
0.0 |
14491.42 |
196.18 |
37.16 |
0.00 |
2 |
太产险 |
2016-09 |
18134.41 |
488.14 |
42.89 |
12007.21 |
34.11 |
0.00 |
565.89 |
1586.64 |
2275.04 |
0.0 |
1130.95 |
0.00 |
3.54 |
0.00 |
3 |
平产险 |
2016-09 |
29834.30 |
452.68 |
14.49 |
28006.03 |
58.88 |
160.85 |
462.46 |
630.04 |
48.66 |
0.0 |
0.00 |
0.21 |
0.00 |
0.00 |
melt之前的bf的columns
Index(['zt', 'date', '合计', '企财险', '家财险', '车险', '货运险', '工程险', '责任险', '短期意外险',
'短期健康险', '船舶险', '农业险', '信用险', '保证险', '其他险'],
dtype='object')
使用melt和pivot_table
#将zt,date变成index,列名(险种)变成了一个variable
bfm=pd.melt(bf,id_vars=['zt','date'])
#根据date列里的元素变成若根列
bfp=bfm.pivot_table(index=['zt','variable'],columns='date').reset_index()
melt之后bfm
|
zt |
date |
variable |
value |
0 |
产险合计 |
2016-09 |
合计 |
271668.28 |
1 |
人财险 |
2016-09 |
合计 |
121711.67 |
2 |
太产险 |
2016-09 |
合计 |
18134.41 |
3 |
平产险 |
2016-09 |
合计 |
29834.30 |
4 |
华财险 |
2016-09 |
合计 |
0.00 |
pivot_table之后bfp
|
zt |
date |
2016-09 |
2017-09 |
2018-09 |
0 |
中联合 |
企财险 |
38.57 |
83.80 |
135.91 |
1 |
中联合 |
保证险 |
1.88 |
2.13 |
1.98 |
2 |
中联合 |
信用险 |
0.00 |
0.00 |
0.00 |
3 |
中联合 |
其他险 |
0.00 |
0.00 |
0.00 |
4 |
中联合 |
农业险 |
7916.90 |
8131.71 |
7560.63 |