假設我們有列+------+-----+-----+| 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
提交
取消