You want to use transform
. This will return a Series with the index aligned to the df so you can then add it as a new column:
df = pd.DataFrame({
'Date': ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05',
'2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'],
'Sym': ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'],
'Data2': [11, 8, 10, 15, 110, 60, 100, 40],
'Data3': [5, 8, 6, 1, 50, 100, 60, 120]
})
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
df
Date Sym Data2 Data3 Data4
0 2015-05-08 aapl 11 5 55
1 2015-05-07 aapl 8 8 108
2 2015-05-06 aapl 10 6 66
3 2015-05-05 aapl 15 1 121
4 2015-05-08 aaww 110 50 55
5 2015-05-07 aaww 60 100 108
6 2015-05-06 aaww 100 60 66
7 2015-05-05 aaww 40 120 121