are you filtering rows before adding the new columns? Or otherwise slicing your dataframe?
e.g. if I run this, then I do not get the warning:
import pandas as pd
df0 = pd.DataFrame({'column1': ['A', 'B'] * 6,
'column 2': range(12),
'column3': ['foo', 'bar', 'baz'] * 4})
df = df0
# df = df0[df0.column3.isin(['foo', 'bar'])]
# df = df0[df0.column3.isin(['foo', 'bar'])].copy()
df['total_sum'] = df.groupby('column1')['column 2'].transform('sum')
df['total_cnt'] = df.groupby('column1')['column 2'].transform('count')
print df
But if I do this, then I get the warning:
import pandas as pd
df0 = pd.DataFrame({'column1': ['A', 'B'] * 6,
'column 2': range(12),
'column3': ['foo', 'bar', 'baz'] * 4})
# df = df0
df = df0[df0.column3.isin(['foo', 'bar'])]
# df = df0[df0.column3.isin(['foo', 'bar'])].copy()
df['total_sum'] = df.groupby('column1')['column 2'].transform('sum')
df['total_cnt'] = df.groupby('column1')['column 2'].transform('count')
print df
Which I can suppress, by explicitly copying when I am filtering the rows of the dataframe as here:
import pandas as pd
df0 = pd.DataFrame({'column1': ['A', 'B'] * 6,
'column 2': range(12),
'column3': ['foo', 'bar', 'baz'] * 4})
# df = df0
# df = df0[df0.column3.isin(['foo', 'bar'])]
df = df0[df0.column3.isin(['foo', 'bar'])].copy()
df['total_sum'] = df.groupby('column1')['column 2'].transform('sum')
df['total_cnt'] = df.groupby('column1')['column 2'].transform('count')
print df