Answers for "compare 2 dataframes"

3

comparing two dataframe columns

comparison_column = np.where(df["col1"] == df["col2"], True, False)
Posted by: Guest on November-04-2020
2

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.
Posted by: Guest on November-05-2020
0

compare multiple columns in pandas

df['Result'] = (df.iloc[:, 1:4].values < df[['E']].values).all(axis=1).astype(int)
print (df)
   A   B   C   D   E  Result
0  V  10   5  18  20       1
1  W   9  18  11  13       0
2  X   8   7  12   5       0
3  Y   7   9   7   8       0
4  Z   6   5   3  90       1
Posted by: Guest on August-11-2021
-1

pandas two dataframes equal

>>> df = pd.DataFrame({1: [10], 2: [20]})

>>> exactly_equal = pd.DataFrame({1: [10], 2: [20]}) # Note the same as above

>>> df.equals(exactly_equal)
True
# Two are the same hence true. If not would be false
Posted by: Guest on October-19-2020

Python Answers by Framework

Browse Popular Code Answers by Language