Home > Enterprise >  Pandas: Run a set of codes for multiple parameters with multiple levels of each parameter (output is
Pandas: Run a set of codes for multiple parameters with multiple levels of each parameter (output is

Time:06-11

Lets say we have a set of codes as given below. Currently, we have two parameters whose value are initialized by user input. The output here is a dataframe.

What we want?

Use a function, to create a dataframe with all combinations of X and Y. Lets say X and Y has 4 input values each. Then

Join the output dataframe, df for each combination to get the desired output dataframe.

X= float(input("Enter the value of X: "))
Y = float(input("Enter the value of Y: "))
A= X*Y
B=X*(Y^2)
df = pd.DataFrame({"X": X, "Y": Y, "A": A, "B": B})

Desired output

X   Y   A   B
1   2   2   4
1   4   4   16
1   6   6   36
1   8   8   64
2   2   4   8
2   4   8   32
2   6   12  72
2   8   16  128
3   2   6   12
3   4   12  48
3   6   18  108
3   8   24  192
4   2   8   16
4   4   16  64
4   6   24  144
4   8   32  256

CodePudding user response:

Is this what you were looking for?

def so_help():
    x = input('Please enter all X values separated by a comma(,)')
    y = input('Please enter all Y values separated by a comma(,)')
    #In case anyone gets comma happy
    x = x.strip(',')
    y = y.strip(',')
    x_list = x.split(',')
    y_list = y.split(',')
    
    df_x = pd.DataFrame({'X' : x_list})
    df_y = pd.DataFrame({'Y' : y_list})
    df_cross = pd.merge(df_x, df_y, how = 'cross')
    
    df_cross['X'] = df_cross['X'].astype(int)
    df_cross['Y'] = df_cross['Y'].astype(int)
    df_cross['A'] = df_cross['X'].mul(df_cross['Y'])
    df_cross['B'] = df_cross['X'].mul(df_cross['Y'].pow(2))
    return df_cross
    
so_help()
  • Related