大熊猫分裂功能给出了重复的系列?

时间:2018-01-27 06:46:07

标签: python pandas

我有泰坦尼克号数据集,我想使用pandas.str.split函数从人名中提取标题。

>>> data.Title = data.Name.str.split('[,.]').str.get(1)
>>> data.Title

导致以下结果,看起来很好:

0           Mr
1          Mrs
2         Miss
3          Mrs
4           Mr
5           Mr
6           Mr
7       Master
8          Mrs
...
Name: Name, Length: 1309, dtype: object

似乎每行只有MrMrs或其他任何字符串。但如果我只索引一行,则会显示此行

>>> data.Name.str.split('[,.]').str.get(1)[0]
0     Mr
0     Mr
Name: Name, dtype: object

我不知道为什么会发生这种情况,我也无法过滤数据框:

data.Title == 'Mr'
0      False
1      False
2      False
3      False
4      False
5      False
6      False
7      False
8      False
...

1 个答案:

答案 0 :(得分:2)

data.Name.str.split('[,.]').str.get(1)[0]

表示选择index == 0的所有行。如果重复索引获得更多行。

因此有必要创建唯一索引:

 data = data.reset_index(drop=True)

对于第二个问题,存在空白空间,因此必须通过strip删除它们:

data.Title = data.Name.str.split('[,.]').str.get(1).str.strip()

所有在一起:

data = data.reset_index(drop=True)
data.Title = data.Name.str.split('[,.]').str.get(1).str.strip()