Python 基于特定列的总和创建新列

Python 基于特定列的总和创建新列,python,pandas,dataframe,rows,calculated-columns,Python,Pandas,Dataframe,Rows,Calculated Columns,我对Python非常陌生,尝试创建一列来指示少数列的总和是否大于0 例如,我有一个类似于下面的df: 身份证件 量 花费 频率 日期 a1 0 0 0 10/02 a2 0 10 0 05/12 a2 0 0 0 03/12 首先创建一个布尔掩码: mask=(df[['quantity','spent','freq']]==0).all(1) 最后: 使用loc存取器: df.loc[mask,'not_zero']=0 df.loc[~mask,'not_zero']=1 或 使用np.

我对Python非常陌生,尝试创建一列来指示少数列的总和是否大于0

例如,我有一个类似于下面的df:

身份证件 量 花费 频率 日期 a1 0 0 0 10/02 a2 0 10 0 05/12 a2 0 0 0 03/12
首先创建一个布尔掩码:

mask=(df[['quantity','spent','freq']]==0).all(1)
最后:

使用
loc
存取器:

df.loc[mask,'not_zero']=0
df.loc[~mask,'not_zero']=1

使用
np.where()
方法:

df['not_zero'] = np.where(mask, 0, 1)
尝试轴=1,然后:

或与:

df

id花费频率日期的数量不为零
0 a1 0 0 10/02 0
1 a2 0 10 0 05/12 1
2 a2 0 0 03/12 0

您可以考虑<代码> DF[ NOTZON0 ] = NP。其中(掩码,0, 1)两个<代码> LOC 赋值。
df['not_zero'] = df[['quantity', 'spent', 'freq']].any(axis=1).astype(int)
df['not_zero'] = np.where(df[['quantity', 'spent', 'freq']].any(axis=1), 1, 0)