python - 如何使用 pivot_table 或 unstack 创建新的数据框
问题描述
我对 Python 很陌生,所以请帮帮我。我有一个数据框如下:
我尝试了不同的方法,但没有得到想要的结果。
我首先尝试groupby
仅使用 2 个值进行试用,但这不适用于我想要的,它填充NaN
:
newdf = df.groupby(['ACCIDENT_NO', 'SEX'])['Age_Group'].value_counts().unstack()
我也试过pivot_table
:
new_1 = new_df.pivot_table(index=['ACCIDENT_NO'], columns= [ 'SEX','Age_Group'], aggfunc=len, fill_value=0)
这至少填补了零,但这里 SEX 成为主要列,并且年龄组在其下细分。我不关心任何细分或任何东西......我只想将类别拆分为不同的列,如上图所需的图像所示。
解决方案
get_dummies
使用and试试这个单线groupby
:
df = pd.get_dummies(df, columns=df.columns[1:], prefix='', prefix_sep='').groupby('ACCIDENT_NO', as_index=False).sum()
现在打印df
将返回所需的结果。
推荐阅读
- javascript - this.draw 不是函数,不会正确运行代码
- c++ - 如何处理 Arduino 中 M5Stack 库抛出的编译错误
- c++ - 构建库 OSX 时找不到“gflags/gflags.h”
- php - password_hash 仍然散列并存储一个未定义的变量
- python - 突出组内独特观察的功能
- python - 在 Twisted for Python 中处理接收到的消息的最佳方式是什么?
- python - 如何将数据框命名为组中首次出现的函数
- java - 验证正则表达式是否与 Posix 兼容
- c# - foreach 某些项目在列表框中 - Winform,C#
- javascript - JavaScript:解析具有多个级别的 JSON 对象