python panda:在列中找到特定的字符串并填充与该字符串匹配的列

发布于 2021-01-29 15:01:43

我有几列的数据框。其中一个充满了用“
|”分隔的电影“流派”,我将这一列拆分为其他几列,以获取X列,每个列均填充有拆分后的值。但是,我需要为每个以1或0填充的“流派”设置1列,具体取决于该列的标题是在标称类型列还是在拆分列之一中找到的。我这样设置数据框:

    df = pd.DataFrame({'A': ['drama|Action', 'Drama', 'Action'], 'A_split1': ['Drama', 'Drama', 'Action'],'A_split2': ['Action', 'None', 'None'],'Drama': [0, 0, 0], 'Action': [0, 0, 0], 'Western': [0, 0, 0]},
                  index = ['a1', 'a2', 'a3'])
    df

但是我没有找到如何检查标头名称是否在字符串中以添加1或0的方法。

关注者
0
被浏览
95
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我认为你需要pop与提取塔str.get_dummiesjoin原来的:

    df = pd.DataFrame({'A': ['Drama|Action', 'Drama', 'Action'], 'B':range(3)},
                      index = ['a1', 'a2', 'a3'])
    print (df) 
                   A  B
    a1  Drama|Action  0
    a2         Drama  1
    a3        Action  2
    
    df = df.join(df.pop('A').str.get_dummies())
    print (df)
        B  Action  Drama
    a1  0       1      1
    a2  1       0      1
    a3  2       1      0
    

    如果要原始列:

    df = df.join(df['A'].str.get_dummies())
    print (df)
                   A  B  Action  Drama
    a1  Drama|Action  0       1      1
    a2         Drama  1       0      1
    a3        Action  2       1      0
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看