Главное, вам нужно преобразовать байты из объекта в int или с плавающей точкой для их суммирования.
df2 = pd.DataFrame([['setup.icl.com:443', "600", "175.11.8.11" ],
['setup.icl.com:443', "272", "172.18.8.26"],
['dap-int.net:443', "243", "172.16.22.241"],
['dap-int.net:443', "243", "172.16.22.241"],
['dap-int.net:441', "243", "172.16.22.241"],
['dap-int.net:441', "243", "172.16.22.241"]],
columns=['url', 'bytes', 'ip'])
url bytes ip
0 setup.icl.com:443 600 175.11.8.11
1 setup.icl.com:443 272 172.18.8.26
2 dap-int.net:443 243 172.16.22.241
3 dap-int.net:443 243 172.16.22.241
4 dap-int.net:441 243 172.16.22.241
5 dap-int.net:441 243 172.16.22.241
df2.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 3 columns):
url 6 non-null object
bytes 6 non-null object
ip 6 non-null object
dtypes: object(3)
memory usage: 224.0+ bytes
df2['bytes'] = df2['bytes'].astype('float64')
df2.groupby(['ip', 'url'])[['bytes']].sum()
bytes
ip url
172.16.22.241 dap-int.net:441 486.0
dap-int.net:443 486.0
172.18.8.26 setup.icl.com:443 272.0
175.11.8.11 setup.icl.com:443 600.0
включает преобразование из байтов в мегабайты ( за каждый израэль )
df2['Mbytes'] = df2['bytes'].astype('float64')/10**6
url bytes ip Mbytes
0 setup.icl.com:443 600 175.11.8.11 0.000600
1 setup.icl.com:443 272 172.18.8.26 0.000272
2 dap-int.net:443 243 172.16.22.241 0.000243
3 dap-int.net:443 243 172.16.22.241 0.000243
4 dap-int.net:441 243 172.16.22.241 0.000243
5 dap-int.net:441 243 172.16.22.241 0.000243
df3 = df2.groupby(['ip', 'url'])[['Mbytes']].sum()
Mbytes
ip url
172.16.22.241 dap-int.net:441 0.000486
dap-int.net:443 0.000486
172.18.8.26 setup.icl.com:443 0.000272
175.11.8.11 setup.icl.com:443 0.000600
вы можете поэкспериментировать с timeit, чтобы увидеть, какой метод самый быстрый