python - Pandas - 在列中附加行值的总和(如果总和为偶数)或 NaN(如果为奇数)

标签 python pandas dataframe sum

我有一个数据框,我想要一个新列 t ,其中包含同一行中其他列的总和。条件是如果总和是奇数,我想要 NaN,如果值是偶数,我想要总和。

df = pd.DataFrame([[1, 8, 7, 2],
                  [8, 5, 9, 4],
                  [1, -5, 3, -2]], columns=list('pqrs'))
df

    p   q   r   s
0   1   8   7   2
1   8   5   9   4
2   1   -5  3   -2

Expected output:
    p   q   r   s   t
0   1   8   7   2   18.0
1   8   5   9   4   26.0
2   1   -5  3   -2  NaN

最佳答案

使用np.where:

df['new'] = np.where(df.sum(1)%2==0, df.sum(1), np.nan)

df
   p  q  r  s   new
0  1  8  7  2  18.0
1  8  5  9  4  26.0
2  1 -5  3 -2   NaN

关于python - Pandas - 在列中附加行值的总和(如果总和为偶数)或 NaN(如果为奇数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53512640/

相关文章:

python - 为什么我只处理一个进程时却有两个 CPU 工作?

python - pandas,尝试从行数太多的数据帧中仅对每个 movie_id 采样 5 行

python - 计算数据框中两列中作为相反对存在的唯一值的数量?

python - 从 Python 代码将字符串插入 SQLite 数据库时出错

python - 如何将 itertools.chain 转换为 numpy 数组?

python - 用列表填充 Pandas 系列

python - 如何将 scikit-learn 数据集写入 csv 文件

python - GroupBy一列,对pandas中分组记录的另一列进行自定义操作

python - 删除 pandas dataframe 列中包含 False 的行

python - Python 中字符串的相等性