假设我们有列+------+-----+-----+| a+b | b+c | c+d |+------+-----+-----+| No | yes | No || Yes | No | No || No | No | Yes |+------+-----+-----+如何从组合信息中获取它的个体 +-----+-----+-----+-----+ | a | b | c | d | +-----+-----+-----+-----+ | no | yes | yes | no | | yes | yes | no | no | | no | no | yes | yes | +-----+-----+-----+-----+我有大量数据,我不能继续对每个数据使用“或”条件。
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
您可以创建 2 个rename
包含列的数据框,通过以下方式连接在一起concat
,然后获取每个重复列的最大值:
d = {'No':0, 'yes':1, 'Yes':1, 'no':0}
df1 = df.rename(columns = dict(zip(df.columns, df.columns.str.split('+').str[0])))
df2 = df.rename(columns = dict(zip(df.columns, df.columns.str.split('+').str[1])))
df = pd.concat([df1, df2],axis=1).replace(d).max(axis=1, level=0).replace({0:'no', 1:'yes'})
print (df)
a b c d
0 no yes yes no
1 yes yes no no
2 no no yes yes
添加回答
举报
0/150
提交
取消