titanic = pd.read_csv("titanic.csv")
# , space ,\s*
# extract big small A-Z or a-z
# + match one or more times
# \. extract dot
titanic['Title'] = titanic.name.str.extract(',\s*([A-Za-z]+)\.')
pd.crosstab(titanic['Title'], titanic['sex'])
pd.crosstab(titanic['Title'], titanic['sex'])
: 这一行代码使用 Pandas 的 crosstab()
函数来创建一个交叉表,用于计算每个称号在男性和女性中的出现次数。第一个参数 titanic['Title']
是行索引,表示要分析的称号;第二个参数 titanic['sex']
是列索引,表示要统计的性别。crosstab()
函数将返回一个包含了称号和性别之间出现次数的交叉表。
#输出结果
sex 0 1
Title
Capt 1 0
Col 4 0
Don 1 0
Dona 0 1
Dr 7 1
Jonkheer 1 0
Lady 0 1
Major 2 0
Master 61 0
Miss 0 260
Mlle 0 2
Mme 0 1
Mr 757 0
Mrs 0 197
Ms 0 2
Rev 8 0
Sir 1 0