Skip to content Skip to sidebar Skip to footer

Python Pandas: Dataframe As A Lookup Table

This is a preprocessed DataFrame, with columns representing frequency and success values for specific column. For example: Column A is associated with FREQ_A and SUCCESS_A respecti

Solution 1:

df1 = pd.DataFrame({
 'A': [1, 2],
 'B': ['B', 'A'],
 'FREQ_A': [1, 1],
 'FREQ_B': [1, 1],
 'Gold': [0, 1],
 'SUCCESS_A': [0.0, 0.01],
 'SUCCESS_B': [0.0, 0.01]})

df2 = pd.DataFrame({'A': [1, 2], 'B': ['A', 'B']})

result = (df2
          .merge(df1[['A', 'FREQ_A', 'SUCCESS_A']], on='A')
          .merge(df1[['B', 'FREQ_B', 'SUCCESS_B']], on='B'))
>>> result
   A  B  FREQ_A  SUCCESS_A  FREQ_B  SUCCESS_B
01  A       10.0010.0112  B       10.0110.00

EDIT

For an arbitrary dataframe:

result = pd.concat(
    [df2, pd.concat([df2[[col]].merge(
                         df1[[col, 'FREQ_' + str(col), 'SUCCESS_' + str(col)]], 
                         on=col, how='left').iloc[:, 1:] 
                     for col in df2], axis=1)], 
    axis=1)

Post a Comment for "Python Pandas: Dataframe As A Lookup Table"