【问题标题】:Transform the values of the features of a dataframe转换数据框特征的值
【发布时间】:2019-02-16 05:01:04
【问题描述】:

我想在值中进行以下转换:

  1. “姓名”列仅显示标题(例如:小姐、先生)。
  2. “Cabin”列仅包含第一个字母(例如:“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

【问题讨论】:

    标签: python-3.x pandas numpy


    【解决方案1】:

    pandas 拥有一整套与String Handling 相关的方法,用于Series

    小屋要求你切开第一个字母:

    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.
    

    【讨论】:

      【解决方案2】:
      categoric.Name= categoric.Name.apply(lambda x: x.split(', ')[1].split('.')[0])
      categoric.Cabin = categoric.Cabin.slice(0,1)
      

      【讨论】:

      • 'Series' 对象没有属性'slice'。转换“客舱”功能时出错。
      猜你喜欢
      • 2019-07-10
      • 2017-12-15
      • 2020-09-10
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 2022-07-03
      • 1970-01-01
      相关资源
      最近更新 更多