如何将两级列名合并成为一级列名
时间: 2023-09-11 09:12:03 浏览: 71
NPOI实现两级分组合并功能(示例讲解)
可以使用Pandas的`map()`方法来将多级列名合并为一级列名。具体来说,可以先获取透视表的列名,并将其转换为一个元组的列表,然后将每个元组中的列名使用字符串拼接起来,得到新的一级列名,最后使用`map()`方法将原始列名映射为新的一级列名即可。以下是一个例子:
```python
import pandas as pd
df = pd.DataFrame({
'user_id': [1, 1, 2, 2],
'behavior_type': ['click', 'buy', 'click', 'buy'],
'count': [10, 2, 5, 1]
})
# 生成透视表
pivot_df = pd.pivot_table(df, index=['user_id', 'behavior_type'], values='count', aggfunc='sum')
# 将两级列名合并为一级列名
new_columns = pivot_df.columns.map(lambda x: '_'.join(x))
# 将原始列名映射为新的一级列名
pivot_df.columns = new_columns
print(pivot_df)
```
输出结果:
```
count_click count_buy
user_id behavior
1 click 10 0
buy 2 2
2 click 5 0
buy 1 1
```
在上面的例子中,首先使用`pd.pivot_table()`方法生成透视表`pivot_df`,其中`values`参数指定了聚合的值列,`aggfunc`参数指定了聚合函数。然后使用`map()`方法将每个元组中的列名使用下划线拼接起来,得到新的一级列名。最后使用`columns`属性将原始列名映射为新的一级列名。
阅读全文