I am having trouble identifying a solution that avoids flagging a warning when performing arithmetic functions on a Pandas DataFrame.
My DataFrame looks like this:
   A   B  
0  3   2 
1  6   6 
2  12  7 
And the arithmetic function I am using is:
df['C'] = (df['A'] * df['B']) - (1.5*df['B'])         
Producing:
   A   B  C
0  3   2  3
1  6   6  27
2  12  7  73.5
This function works, but a warning is flagged that says:
SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
I've tried a few things, such as:
df.loc[:,['A', 'B']] = df.loc[:,['A', 'B']].multiply(df.loc[:, 'C'], axis=1)
But I would really like to find an efficient solution to achieve this in one step like I had previously. I know I can just silence the warning, but I know if I find a solution using .loc, the code will be faster.
