猿问

从多个变量的组合(是/否)中提取单个变量(是/否)

假设我们有列


+------+-----+-----+

|  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 |

    +-----+-----+-----+-----+

我有大量数据,我不能继续对每个数据使用“或”条件。


RISEBY
浏览 121回答 1
1回答

白衣非少年

您可以创建 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    d0   no  yes  yes   no1  yes  yes   no   no2   no   no  yes  yes
随时随地看视频慕课网APP

相关分类

Python
我要回答