我有一个包含3列的示例pandas数据框架。
下面是样本数据集-
In [3]: df = pd.DataFrame({
...: 'mode': ['car'] * 4 + ['train'] * 3 + ['truck'] * 5,
...: 'qty1': [2,4,9,7,6,3,4,1,2,5,5,7],
...: 'qty2': [5,2,3,6,9,7,4,5,1,6,3,9]
...: })
...: df
Out[3]:
mode qty1 qty2
0 car 2 5
1 car 4 2
2 car 9 3
3 car 7 6
4 train 6 9
5 train 3 7
6 train 4 4
7 truck 1 5
8 truck 2 1
9 truck 5 6
10 truck 5 3
11 truck 7 9
现在我使用pivot_table
得到以下输出-
In [4]: pivot1 = pd.pivot_table(data=df,
...: index=['mode'],
...: values=['qty1','qty2'],
...: aggfunc='sum')
In [5]: pivot1
Out[5]:
qty1 qty2
mode
car 22 16
train 13 20
truck 20 24
现在当我应用下面的代码时,
In [7]: pivot1 = pivot1.style.set_table_styles([^M
...: {^M
...: "selector":"th",^M
...: "props": [("border", "1px solid black"),^M
...: ("font-style", "italic")]^M
...: },^M
...: {^M
...: "selector":"th.row_heading",^M
...: "props": [("border", "1px solid black"),^M
...: ("font-style", "italic")]^M
...: } ^M
...: ]).set_properties(border="1px solid black").format('${:.2f}')
...: pivot1
得到以下输出-数据透视表样式
现在我想要所有的列标头- 'mode', 'qty1'和'qty2'在一个级别。我尝试使用reset_index()
重置索引,但在重置索引后我不想要索引列。我希望最终的表看起来像这样-
<表类>模式 qty1 qty2 tbody><<tr>汽车 22.00美元16.00美元 火车 13.00美元20.00美元 卡车 20.00美元24.00美元 表类>
mode
是索引名,您可以将索引名分配给列标题名
pivot1.columns.name, pivot1.index.name = pivot1.index.name, None
print(pivot1)
mode qty1 qty2
car 22 16
train 13 20
truck 20 24