如何制作一个值多于两个的“交叉表”?

2024-05-08 14:11:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理两个数据集:

数据集:

ID        271116 non-null int64 
Name      271116 non-null object
Sex       271116 non-null object
Age       261642 non-null float64
Height    210945 non-null float64
Weight    208241 non-null float64
Team      271116 non-null object
NOC       271116 non-null object
Games     271116 non-null object
Year      271116 non-null int64
Season    271116 non-null object
City      271116 non-null object
Sport     271116 non-null object
Event     271116 non-null object
Medal     39783 non-null object

数据区域:

NOC       230 non-null object
region    227 non-null object
notes     21 non-null object

我将这两个数据集进行了合并,并称之为“datosTotales”,我试图创建一个数据框架或交叉表,显示赛事、参赛国家、性别奖牌以及这些国家的运动员总数。你知道吗

df = pd.DataFrame(datosTotales) 

pd.crosstab([df["Games"],df["region"]], df["Sex"], margins=True, margins_name="Atletas Totales")

这张桌子看起来像:


                    Sex F   M   Atletas Totales
Games        region         
1896 Summer  Australia  0   5   5
             Austria    0   8   8
.
.
.
.
.

但我想做一张能展示奖牌的桌子


                F   M   Bronze Gold Silver Atletas Totales
Games   region      
.
.
.
.
.

我在这里有点迷路了,我也试着用DataFrame实现它,但没有成功:(


Tags: 数据dfobject国家nullregiongamesnon