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

标签 python pandas dataframe mapping slice

我已经尝试了很多东西( 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

关于python - Pandas - 根据另一列中引用的列名创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50915610/

相关文章:

python - Pandas - 数据集包含一长串字符串。如何添加逗号来分隔每个字符串?

python - 使用 openpyxl 插入列

python - 如何完全或部分匹配 python 中的正则表达式

python - 如何重写此代码以使其更易于阅读?

python - 是否可以附加到 xarray.Dataset?

python - 在 pandas Series/DataFrame 上执行多个字符串操作

python - 在 pandas 中,有一种方法可以计算扩展窗口的一部分;不计算整个数组和 "tail-ing"结果

python - 拆分一列字符串并用 Pandas 计算单词数

java - 使用 Java 将 Spark DataFrame 中的数组转换为 DenseVector

python - 根据 MultiIndex DataFrame 中的第一级列删除重复项