python-3.x - 计算值并将它们作为列附加到数据框中
问题描述
我正在研究航空公司数据集。我必须计算每个airline_pnr 号码的成人、儿童和婴儿的数量,然后将这些值作为列附加到数据框中。
乘客类型:乘客类型(成人(ADT),儿童(CHD),婴儿(INF))
+-------------+----------+
| airline_pnr |Pax_Type |
+-------------+----------+
| EIPBGB | ADT |
| EIPBGB | ADT |
| EIPBGB | CHD |
| EIPBGB | INF |
| UH7EQV | ADT |
| UH7EQV | ADT |
| YVEEW | ADT |
| YVEEW | ADT |
| DR6YWR | ADT |
| DR6YWR | ADT |
| DR6YWR | ADT |
| DR6YWR | CHD |
| DR6YWR | INF |
| QJ2ESP | ADT |
| QJ2ESP | CHD |
| JL6E9T | ADT |
| VGYD5V | ADT |
| YVEG1 | ADT |
| YVEG1 | ADT |
+-------------+----------+
预期输出:
+--------+----------+--------------+-----------------+---------------+
|air_pnr | Pax Type | no_of_adults | no_of_childrens | no_of_infants |
+--------+----------+--------------+-----------------+---------------+
| EIPBGB | ADT | 2 | 1 | 1 |
| UH7EQV | ADT | 2 | 0 | 0 |
| YVEEW | ADT | 2 | 0 | 0 |
| DR6YWR | ADT | 3 | 1 | 1 |
| QJ2ESP | ADT | 1 | 1 | 0 |
| JL6E9T | ADT | 1 | 0 | 0 |
| VGYD5V | ADT | 1 | 0 | 0 |
| YVEG1 | ADT | 2 | 0 | 0 |
+--------+----------+--------------+-----------------+---------------+
我的努力:
df= df.value_counts(['airline_pnr', 'Pax Type'])
df = df.to_frame()
df= df.rename(columns = {0: "freq"})
但没有得到想要的结果
解决方案
'air_pnr'
您可以在变量上使用 groupby ,并且他们使用size()
计算每个值出现的次数。
df.groupby(['air_pnr','Pax_Type']).size()
推荐阅读
- git - 如何为数据库实体设计类似 git 的版本控制功能?
- reactjs - Create-react-app 作为依赖,类似于 storybook
- c# - 在 ServiceFabric 的 RunAsync() 中模拟取消令牌请求
- unity3d - Unity 中带有 moshi 的 ClassNotFoundException
- oracle - JBOSS 找不到驱动模块
- c# - 由于第三方 cookie,Auth0 锁定在 Safari IOS 12 上被阻止
- javascript - 使用 javascript 检查我的 html 表是否为空
- delphi - IXMLDocument AddChild 中的内存泄漏(节点)
- python - 在 macOS 10.14.2 上安装 Python 3.7.2 失败
- angular - 将 Angular 应用程序部署到 S3 后,没有发生任何变化