作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
import pandas as pd
import numpy as np
df=pd.DataFrame({"item":['a','a','a','b'],"item1":['b','d',np.nan,'c']})
df_grp=df.groupby("item").agg({'item1' : ['last','count']})
df_grp.columns = df_grp.columns.map('_'.join)
df_grp.reset_index()
这给了我
item item1_last item1_count
0 a d 2
1 b c 1
我想要的是
item last_item1 count_item1
0 a d 2
1 b c 1
有没有更好的方法来实现这一目标?
最佳答案
您可以在加入列之前使用 swaplevel
。
df_grp.columns = df_grp.columns.swaplevel().map('_'.join)
#df_grp.columns = df_grp.swaplevel(axis=1).columns.map('_'.join)
df_grp.columns = df_grp.columns.swaplevel().map('_'.join)
print(df_grp.reset_index())
item last_item1 count_item1
0 a d 2
1 b c 1
关于pandas - 以正确的顺序按列展平分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66709741/
我是一名优秀的程序员,十分优秀!