【问题标题】:re code the categorical column using sub setting the data frame使用子设置数据框重新编码分类列
【发布时间】:2019-08-15 05:48:28
【问题描述】:

我正在尝试将 pandas 数据框的分类列重新编码为更合理的分类列。

为简单起见,我采用具有“客舱”列的泰坦尼克号数据。我正在尝试合并所有 A10 A20 A22 并将其重新编码为 A,类似地 C10、C12 到 C 等等。

我已经尝试过使用子集,这是我的代码。

for i in ['A','B','C']:
    for x in train[train.Cabin.str.contains(i)].loc[:,'Cabin'].index:
        train.loc[x,'Cabin'] = i

我正在寻找的是一种有效的方法。我是新手,我认为这不是正确的方法。请指导我。如果我违反了任何堆栈溢出规则,我很抱歉。

【问题讨论】:

    标签: python pandas dataframe subset


    【解决方案1】:

    如果可能,从列中提取第一个字母:

    train.Cabin = train.Cabin.str[0]
    

    或者如果需要从列表中提取第一个匹配值:

    L = ['A','B','C']
    
    pat = '|'.join(L)
    train.Cabin = train.Cabin.str.extract('('+ pat + ')', expand=False)
    

    【讨论】:

    • 谢谢你这是一个独特的方法,你能解释一下'|'的用法
    • @AnanyaPandey - 当然,它是正则表达式 OR - 这意味着它提取 A or B or C
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多