Darkstar Dream
Darkstar Dream

Reputation: 1859

How to apply a function to two column to create third column

I have two columns and I want to create the third column using that two columns by applying a function

# suppose I have a data frame of two columns
df =      std             mean
      1.555264e+06      155980.767761
      1.925751e+06      237683.694682
      4.027044e+05      46319.631557
# from these two columns I want to create a column called cov 
# which will calculate the coefficient of varriation for that I defined a funtion

def cov(std, mean):
    return (std/mean)*100
df['Cov'] = df.apply(lambda x: cov(x.Std, x.mean), axis=1) 
# but here the problem I face that it calculates the all variation at once and show same in every row

I tried to search solution to apply a function to two columns of Pandas dataframe but I am getting error from the solution such as ("'numpy.float64' object has no attribute 'values'", 'occurred at index 1')

Upvotes: 2

Views: 370

Answers (1)

U13-Forward
U13-Forward

Reputation: 71560

You don't need to use apply, just use:

df['Cov'] = (df['std'] / df['mean']) * 100

Upvotes: 2

Related Questions