大熊猫繁殖的两个条件



我有以下数据帧,我正试图通过a列或B列与C列的乘积来获得收入列。

条件是:

  • 如果columnB是NaN,则收入列=columnA*columnC
  • 如果columnB不是NaN,则收入列=columnB*columnC
type   columnA     columnB     columnC
1        23          NaN          2
2        14          35           3
3        11          NaN          4
4        29          12           5

在python中有这两个条件的情况下,我如何获得这个收入栏?提前谢谢。

首先可以使用.isnull().values.any()检查columnB是否包含任何NaN值,然后应用if else条件以获得所需的revenue列。

以下是您的操作方法:

df['revenue'] = df['columnA'] * df['columnC'] if df['columnB'].isnull().values.any() else df['columnB'] * df['columnC']

输出:

type  columnA  columnB  columnC  revenue
0     1       23      NaN        2       46
1     2       14     35.0        3       42
2     3       11      NaN        4       44
3     4       29     12.0        5      145

使用np.where

import numpy as np

df['revenue'] = np.where(df['columnB'].isna(), df['columnA'] * df['columnC'], df['columnB'] * df['columnC'])
type  columnA  columnB  columnC  revenue
0     1       23      NaN        2     46.0
1     2       14     35.0        3    105.0
2     3       11      NaN        4     44.0
3     4       29     12.0        5     60.0

最新更新