Skip to main content
 首页 » 编程设计

python之Pandas之根据另一列中引用的列名创建列

2025年05月04日16mate10pro

我已经尝试了很多东西( map 、过滤器、连接),但似乎没有任何效果。 下表最好地描述了我正在尝试做的事情:(我需要获得“必填”列)

    colA    colB    colC    ref     required 
1   a1        b1    c1      colA     a1 
2   a2        b2    c2      colA     a2 
3   a3        b3    c3      colB     b3 
4   a4        b4    c4      colB     b4 
5   a5        b5    c5      colC     c5 
6   a6        b6    c6      colC     c6 

上面只是一个例子——在真实的例子中我有 >50 列,所以做条件是行不通的......

有什么建议如何做到这一点?

请您参考如下方法:

如果我对你的问题的理解正确,下面的apply就可以解决问题:

# Starting DataFrame: 
>>> df 
  colA colB colC   ref 
1   a1   b1   c1  colA 
2   a2   b2   c2  colA 
3   a3   b3   c3  colB 
4   a4   b4   c4  colB 
5   a5   b5   c5  colC 
6   a6   b6   c6  colC 
 
df['required'] = df.apply(lambda x: x.loc[x.ref], axis=1) 
 
# Final DataFrame: 
>>> df 
  colA colB colC   ref required 
1   a1   b1   c1  colA       a1 
2   a2   b2   c2  colA       a2 
3   a3   b3   c3  colB       b3 
4   a4   b4   c4  colB       b4 
5   a5   b5   c5  colC       c5 
6   a6   b6   c6  colC       c6