这是一个 python pandas 问题,我需要一些帮助。
我有一个表格,我将像这样简化:
+--------+--------+--------+-----------+
|性别 |状态|年龄 |已购买 |
+--------+--------+--------+------------+
|男 |内华达 |成人 |是的 |
|女|内华达 |成人 |是的 |
|男 |佛罗里达 |青少年 |是的 |
|男 |佛罗里达 |成人 |没有 |
|女|内华达 |青少年 |没有 |
|女|纽约 |高级|是的 |
|男 |纽约 |高级|是的 |
|女|纽约 |成人 |是的 |
|女|内华达 |青少年 |是的 |
|男 |内华达 |成人 |没有 |
|女|佛罗里达 |高级|是的 |
|男|佛罗里达州 |青少年 |没有 |
|男|纽约 |青少年 |是的 |
|女|内华达 |成人 |没有 |
+--------+--------+--------+------------+
我想在计算“购买”数量时合并每列上的类别类型,从而有效地生成如下内容:
+--------+----------+------------+----+
| | |已购买 |
+--------+----------+------------+----+
| | |是的 |没有 |
|性别 |男 | 4 | 3 |
| |女 | 5 | 2 |
|状态|佛罗里达州 | 2 | 2 |
| |国家 NV | 3 | 3 |
| |纽约州 | 4 | 0 |
|年龄 |高级| 3 | 0 |
| |成人 | 3 | 3 |
| |青少年 | 3 | 2 |
+--------+----------+------------+----+
最佳答案
交叉表的使用+concat
pd.concat([pd.crosstab(df[x],df.Purchased)for x in df.columns[:-1]],keys=df.columns[:-1])
Out[273]:
Purchased No Yes
Gender Female 2 5
Male 3 4
State FL 1 2
Fl 1 0
NV 3 3
NY 0 4
Age Adult 3 3
Senior 0 3
Teen 2 3
关于python - 在列中合并类别并获得一列计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049626/