python - 如何为 groupby 结果设置列名
问题描述
我有一个大的df。在两列上使用 groupby,我在第三列上有一个 value_counts。到目前为止,一切都很好:
df_group_chir = df_chir.groupby(['Spec','Year'])['type'].value_counts()
这给出了预期的结果:
type
Spec year type
CHI 2017 D 876
K 639
2018 D 893
K 524
2019 D 969
K 567
名称:类型,dtype:int64
但是.....如您所见,它说:名称:类型。没有其他的。以下代码也显示了 1 列:
df_group_chir.columns
Index(['type'], dtype='object')
第一个结果当然是熊猫系列。使这个系列成为 DF,当然会得到相同的结果。
知道以下内容是行不通的,但还是尝试了:
df_group_chir.columns=['Spec', 'Year', 'Type', 'Total']
结果:
ValueError: Length mismatch: Expected axis has 1 elements, new values have 4 elements
我的明显问题:如何在 groupby 结果中获得(四个)列名?
提前致谢!!问候一月
解决方案
让我们尝试一下reset_index
选项name
:
df_group_chir = df_chir.groupby(['Spec','Year'])['type'].value_counts()
df_group_chir = df_group_chir.reset_index(name='Total')
推荐阅读
- c++ - C++ 中的 Playsound() 播放 windows 错误声音,我已经包含了 winmm.lib
- webassembly - 生成的 WebAssembly 模块如何包含大量动态数据
- javascript - 在每个循环后使用 ajax 调用调用一个函数
- react-native - React-native-maps MapView.Circle
- php - php中数组键上的连字符
- python - Pandas:在测试中处理看不见的数据
- google-chrome-extension - Chrome 扩展程序(和/或 tampermonkey 脚本)未在某些网站(如 gmail)上运行
- android - Android:如何从屏蔽广告的数量和网络带宽消耗来衡量广告屏蔽的效果?
- c - 如何获取 SSDT 地址
- ios - 如何知道 Firebase 是否获取了值