我有几列的数据框。其中一个充满了用“ |”分隔的电影“流派”,我将这一列拆分为其他几列,以获取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的方法。
我认为你需要pop与提取塔str.get_dummies和join原来的:
pop
str.get_dummies
join
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