【问题标题】:check if row value value is equal to column name and access the value of the column检查行值值是否等于列名并访问列的值
【发布时间】:2021-09-24 08:33:59
【问题描述】:

示例数据框 -

col1 col2 col3 col4 colfromvaluestobepicked new col
1 1 0 1 'col1' 1
0 0 1 1 'col2' 0

我想创建一个新列,其值基于 colfromvaluestobepicked ('col1') 是否为 col1,然后选择该 col 值并将其分配给新 col,依此类推。

我不知道如何做到这一点?

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    使用DataFrame.melt 替代lookup

    df1 = df.melt('colfromvaluestobepicked', ignore_index=False)
    
    df['new']=df1.loc[df1['colfromvaluestobepicked'].str.strip("'") == df1['variable'],'value']
    

    【讨论】:

      【解决方案2】:

      试试这个:

      df['new col'] = df.apply(lambda row: row[row['colfromvaluestobepicked']],axis =1)
      

      【讨论】:

        猜你喜欢
        • 2022-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-19
        • 1970-01-01
        • 1970-01-01
        • 2021-08-13
        • 1970-01-01
        相关资源
        最近更新 更多