python - 检查数据框中是否存在正值

标签 python pandas numpy

我有数据框:

A B C D
1 0 0 2
0 1 0 0
0 0 0 0

我需要选择所有大于 0 的值并将它们放入列表中。 如果行不包含任何正值 0 应写入列表。

因此,给定数据帧的输出应如下所示:

 [1,2,1,0]

如何解决这个问题?

最佳答案

这是一个您可以使用的简单循环(循环遍历 df.values 为我们提供作为数组的行):

output = []

for ar in df.values:
    nonzeros = ar[ar > 0]
    # If nonzeros is not empty proceed and extend the output
    if nonzeros.size:
      output.extend(nonzeros)
    # If not add 0 
    else:
      output.append(0)

print(output)

返回:

[1, 2, 1, 0]

关于python - 检查数据框中是否存在正值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56408009/

相关文章:

python - 为什么 python 2.6 不更新我的 numpy 数组?

python DBF : 'ascii' codec can't decode byte 0xf6 in position 6: ordinal not in range(128)

python - 如何在终端上运行 Python 脚本?

python - 更改DataFrame中某行的增量值

python - 在 numpy 中快速找到对称对

python - 更快地填写列表

python 2 - 为什么 'with' 在嵌入式 c 代码中的行为不同?

python - 从两个 pandas 系列创建逐元素字典(csv 列作为 DataFrame)

python - Pandas 无法正确识别列

python - numpy数组维度不匹配错误