首页 > 解决方案 > 从具有最多数据(非 NA)的三列创建组合列

问题描述

我有如下数据:

import pandas as pd

df = pd.DataFrame(data=[[1,-2,3,0,0], [0,0,0,4,0], [0,0,0,0,5]]).T

df.columns = ['col1', 'col2', 'col3']
    
> df

  col1 col2 col3
    1   0   0
    -2  0   0
    3   0   0
    0   4   0
    0   0   5

我想创建第四个(“Col4”),它采用非零的 col。

所以结果是:

  col1 col2 col3 col4
    1   0   0   1  
    -2  0   0   -2
    3   0   0   3
    0   4   0   4
    0   0   5   5

编辑:如果两个非零,请始终使用col1. 此外,这些数字可能是负数。我已更新df以反映这一点。

标签: pythonpandas

解决方案


使用最大的列是可能的

df['col4'] = df.max(axis=1)

推荐阅读