python - 如果行等于 python 中的值,则打印列名

标签 python pandas numpy

如果值 = 1,我如何在行之间迭代并在一列中打印列名

mydata = [{'a' : '0', 'b': 1, 'c': 0}, {'a' : 1, 'b': 0, 'c':1}, {'a' : '0', 'b': 1, 'c':1}] 
df = pd.DataFrame(mydata)

a   b   c   Result 
0   1   0   b 
1   0   1   a , c
0   1   1   b , c

结果只显示等于1的列名

最佳答案

使用

df['New']=df.astype(int).dot(df.columns+',').str[:-1]
df
Out[44]: 
   a  b  c  New
0  0  1  0    b
1  1  0  1  a,c
2  0  1  1  b,c

关于python - 如果行等于 python 中的值,则打印列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54433839/

相关文章:

python - DataFrame.to_dict 为什么会在调用时返回不同的值?

python - 如何在 Python 中使用带有条件的 Groupby

python - 为一行代码编写一个函数?

python - 使用多列索引创建 Pandas Dataframe

python - 列表中的 bin 顺序值

python - 空 DataFrame 上的 Pandas groupby 导致没有列

python - Pandas :根据条件将新列映射到现有列

python - 将字段传递给函数。 PYTHON.Pandas

python - 使用 scipy.sparse.csc_matrix.toarray() 将稀疏矩阵转换为数组时出错

python - Pandas 的大小和计数有什么区别?