Pandas: 超级分类分类数据
Pandas: Super categories the category data
我正在关注 Kaggle's Titanic 数据集问题。我有一个包含许多列的数据框。其中之一是名为 Cabin
(分类数据)的列,其中包含分配给乘客的机舱号,
和另一列 Survived
仅包含 0
和 1
(0-未幸存和 1-幸存)
Survived Parch Ticket Fare Cabin Embarked
0 0 A/5 21171 7.2500 C85 S
1 0 PC 17599 71.2833 C85 C
1 0 3101282 7.9250 C85 S
0 0 113803 53.1000 A123 S
0 0 373450 8.0500 B123 S
我想根据 Cabin 对这些数据进行分组,看看每个 group/Cabin 有多少人幸存下来。我尝试使用 groupby 函数
df.groupby(["Cabin"]["Survived"].sum()
这将数据分成了太多详细的组。
A10 0
A14 2
A16 1
A19 4
A20 5
F38 1
F4 3
G6 7
T 0
相反,我希望它们根据 Cabin A、Cabin B、Cabin C 等进行分组。
A 30
B 0
C 40
我想到了用字典来存储所有不同的 A、B 等
dic = {"A": ["A10", "A34", "A36", "A5", "A6", "A7"],
"B": ["B101", "B102", "B18", "B19", "B20"],
.....................
}
但是由于有147个不同的类别(A2、A3、B56、F45……),单单做一个任务实在是太多了。是否有任何内置功能可以帮助完成此任务?
您可以 groupby
第一个字母。
df
Survived Parch Ticket Fare Cabin Embarked
0 0 0 A/5 21171 7.2500 C85 S
1 1 0 PC 17599 71.2833 C85 C
2 1 0 3101282 7.9250 C85 S
3 0 0 113803 53.1000 A123 S
4 0 0 373450 8.0500 B123 S
df.groupby(df.Cabin.str[0]).Survived.sum()
Cabin
A 0
B 0
C 2
Name: Survived, dtype: int64
您不必经历创建字典的麻烦。
我正在关注 Kaggle's Titanic 数据集问题。我有一个包含许多列的数据框。其中之一是名为 Cabin
(分类数据)的列,其中包含分配给乘客的机舱号,
和另一列 Survived
仅包含 0
和 1
(0-未幸存和 1-幸存)
Survived Parch Ticket Fare Cabin Embarked
0 0 A/5 21171 7.2500 C85 S
1 0 PC 17599 71.2833 C85 C
1 0 3101282 7.9250 C85 S
0 0 113803 53.1000 A123 S
0 0 373450 8.0500 B123 S
我想根据 Cabin 对这些数据进行分组,看看每个 group/Cabin 有多少人幸存下来。我尝试使用 groupby 函数
df.groupby(["Cabin"]["Survived"].sum()
这将数据分成了太多详细的组。
A10 0
A14 2
A16 1
A19 4
A20 5
F38 1
F4 3
G6 7
T 0
相反,我希望它们根据 Cabin A、Cabin B、Cabin C 等进行分组。
A 30
B 0
C 40
我想到了用字典来存储所有不同的 A、B 等
dic = {"A": ["A10", "A34", "A36", "A5", "A6", "A7"],
"B": ["B101", "B102", "B18", "B19", "B20"],
.....................
}
但是由于有147个不同的类别(A2、A3、B56、F45……),单单做一个任务实在是太多了。是否有任何内置功能可以帮助完成此任务?
您可以 groupby
第一个字母。
df
Survived Parch Ticket Fare Cabin Embarked
0 0 0 A/5 21171 7.2500 C85 S
1 1 0 PC 17599 71.2833 C85 C
2 1 0 3101282 7.9250 C85 S
3 0 0 113803 53.1000 A123 S
4 0 0 373450 8.0500 B123 S
df.groupby(df.Cabin.str[0]).Survived.sum()
Cabin
A 0
B 0
C 2
Name: Survived, dtype: int64
您不必经历创建字典的麻烦。