comparing two dataframe columns
comparison_column = np.where(df["col1"] == df["col2"], True, False)
comparing two dataframe columns
comparison_column = np.where(df["col1"] == df["col2"], True, False)
pandas compare two columns
# Syntax:
# C = np.where(condition, A, B)
# equal to A when condition true and B when false
import numpy as np
import pandas as pd
a = [['10', '1.2', '4.2'], ['15', '70', '0.03'], ['8', '5', '0']]
df = pd.DataFrame(a, columns=['one', 'two', 'three'])
df['que'] = np.where((df['one'] >= df['two']) & (df['one'] <= df['three'])
, df['one'], np.nan)
# If you have more than one condition, then you could use np.select
# instead. For example, if you wish df['que'] to equal
# df['two'] when df['one'] < df['two'], then
conditions = [
(df['one'] >= df['two']) & (df['one'] <= df['three']),
df['one'] < df['two']]
choices = [df['one'], df['two']]
df['que'] = np.select(conditions, choices, default=np.nan)
# If we can assume that df['one'] >= df['two'] when
# df['one'] < df['two'] is False, then the conditions and
# choices could be simplified to
conditions = [
df['one'] < df['two'],
df['one'] <= df['three']]
choices = [df['two'], df['one']]
# Note that:
a = [['10', '1.2', '4.2'], ['15', '70', '0.03'], ['8', '5', '0']]
df = pd.DataFrame(a, columns=['one', 'two', 'three'])
# defines a DataFrame with string values. Since they look numeric,
# you might be better off converting those strings to floats:
df2 = df.astype(float)
# This changes the results, however, since strings compare
# character-by-character, while floats are compared numerically.
Copyright © 2021 Codeinu
Forgot your account's password or having trouble logging into your Account? Don't worry, we'll help you to get back your account. Enter your email address and we'll send you a recovery link to reset your password. If you are experiencing problems resetting your password contact us