简体   繁体   中英

Change Value of a Dataframe Column Based on a Filter

I have a Dataframe that consists of 2 columns:

  1. "Time Spent on website"
  2. "Dollars spent on the website"

I want to perform some classification analysis on this dataset and I only care whether a user made a purchase or not. So I want to run through the "Dollars spent on the website" column and transform the value to "1" if the user spent over $0.00 and have the value be "0" if the user spent nothing.

What is the proper way to do this with a pandas dataframe?

df['purchase'] = 0
df.loc[df['dollars_spent'] > 0, 'purchase'] = 1

or

df['purchase'] = df['dollars_spent'].apply(lambda x: 1 if x > 0 else 0)

You can also use NumPy 's where :

import numpy as np
df['Purchase'] = np.where(df['Dollars spent on the website'] > 0, 1, 0)

If the condition is True , 1 is returned else 0 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM