python - 如何将满足特定条件的列标题返回到pandas中的新列

标签 python pandas

对于下面的数据框,如何将大于1的列的标题名称返回到名为“Remark”的新列

    A   B   C   
0   1   1   2   
1   2   2   2   
2   1   3   1
3   4   5   2

期望的输出如下

    A   B   C   Remark
0   1   1   2   C
1   2   2   2   A,B,C 
2   1   3   1   B
3   4   5   2   A,B,C

提前致谢

最佳答案

使用DataFrame.dot bool DataFrame 的列名称(带分隔符)和最后删除 ,:

df['Remark'] = df.gt(1).dot(df.columns + ',').str[:-1]
print (df)
   A  B  C Remark
0  1  1  2      C
1  2  2  2  A,B,C
2  1  3  1      B
3  4  5  2  A,B,C

详细信息:

print (df.gt(1))
       A      B      C
0  False  False   True
1   True   True   True
2  False   True  False
3   True   True   True

print (df.gt(1).dot(df.columns + ','))
0        C,
1    A,B,C,
2        B,
3    A,B,C,
dtype: object

关于python - 如何将满足特定条件的列标题返回到pandas中的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969240/

相关文章:

python - 当尝试确定我是否使用 User for Enthought Canapy 时,sys.prefix 生成 "Segmentation fault: 11"

python - 按行中的值从 pandas 数据透视表中过滤

python - 为什么在 python cv2.bitwise 中使用类似的源参数?示例 :cv2. bitwise_and(roi,roi,mask = mask_inv)

python - 将数据帧列合并到具有动态列名称或索引的嵌套键中

python - Pandas :仅在数据帧的开头和结尾删除 NaN

python - 计算大型 Pandas 数据集所有行中 NaN 列的有效方法?

python - 从元组中过滤 Pandas 数据框

python - 非标准可选参数默认值

python - 如何在 Python 上使用 Opencv 在内存中编码/解码 Webp 格式?

python - matplotlib - 在 y 轴上为每组创建 x 轴上的条形图