转换数据框特征的值

时间:2019-02-15 20:30:32

标签: python-3.x pandas numpy

我想对值进行以下转换:

  1. “名称”列仅显示标题(例如:小姐,先生)。
  2. “机舱”列仅包含第一个字母(例如:“ C”,而不是整个“ C54”。

对于此类类似问题,请最后为我提供一般的解决方案。谢谢。(这是在Jupyter笔记本中,我不知道如何正确显示代码)

categoric.head()
output:
    Name                                                Cabin   
0   Braund, Mr. Owen Harris                             A23 
1   Cumings, Mrs. John Bradley (Florence Briggs Th...   C85 
2   Heikkinen, Miss. Laina                              C54
3   Futrelle, Mrs. Jacques Heath (Lily May Peel)        C123    
4   Allen, Mr. William Henry                            B231

2 个答案:

答案 0 :(得分:1)

pandas具有与Series的{​​{3}}相关的整套方法。

客舱要求您切出第一个字母:

categoric.Cabin.str[0]

#0    A
#1    C
#2    C
#3    C
#4    B

要获取标题,您可以使用.str.extract,将其与所有不同值的捕获组一起使用竖线分隔。由于.在模式中具有特殊含义,因此需要在其前面加上\来对其进行转义:

categoric.Name.str.extract('(Mr\.|Mrs\.|Miss\.)')

#       0
#0    Mr.
#1   Mrs.
#2  Miss.
#3   Mrs.
#4    Mr.

答案 1 :(得分:1)

categoric.Name= categoric.Name.apply(lambda x: x.split(', ')[1].split('.')[0])
categoric.Cabin = categoric.Cabin.slice(0,1)