["python","pandas","dataframe"]
pandas get the row-wise minimum value of two or more columns

How can I reference the minimum value of two dataframes as part of a pandas dataframe equation? I tried using the python min() function which did not work. I am looking for something along the lines of this: data['eff'] = pd.DataFrame([data['flow_h'], data['flow_c']]).min() *Cp* (data[' Thi'] - data[' Tci']) I also tried to use pandas min() function, which is also not working. min_flow = pd.DataFrame([data['flow_h'], data['flow_c']]).min() InvalidIndexError: Reindexing only valid with uniquely valued Index objects I was confused by this error. The data columns are just numbers and a name, I wasn't sure where the index comes into play. import pandas as pd import numpy as np np.random.seed(365) rows = 10 flow = {'flow_c': [np.random.randint(100) for _ in range(rows)], 'flow_d': [np.random.randint(100) for _ in range(rows)], 'flow_h': [np.random.randint(100) for _ in range(rows)]} data = pd.DataFrame(flow) # display(data) flow_c flow_d flow_h 0 82 36 43 1 52 48 12 2 33 28 77 3 91 99 11 4 44 95 27 5 5 94 64 6 98 3 88 7 73 39 92 8 26 39 62 9 56 74 50
If you are trying to get the row-wise mininum of two or more columns, use pandas.DataFrame.min. Note that by default axis=0; specifying axis=1 is necessary. data['min_c_h'] = data[['flow_h','flow_c']].min(axis=1) # display(data) flow_c flow_d flow_h min_c_h 0 82 36 43 43 1 52 48 12 12 2 33 28 77 33 3 91 99 11 11 4 44 95 27 27 5 5 94 64 5 6 98 3 88 88 7 73 39 92 73 8 26 39 62 26 9 56 74 50 50