Пожалуйста, пройдите SO тур и прочитайте о Как спросить .Это поможет вам быстрее получить полезные ответы.
IIUC, этот код должен помочь вам сформулировать ваш вопрос:
import pandas as pd
df = pd.DataFrame({
'shipment_name':['A','A','A','A','A','B','B','B','B','B','B', 'C','C','C','C','C'],
'city_name':[2,3,4,5,6,1,2,3,4,5,6,5,6,7,8,9],
'volume':[46,46,46,46,46,50,50,50,50,50,50,55,55,55,55,55],
'customer_name':['James','James','James','James','James','James','James','James','James','James','James','James','James','James','James','James']
})
u = df.groupby(['city_name']).sum()
Чтобы дать вам:
volume
city_name
1 50
2 96
3 96
4 96
5 151
6 151
7 55
8 55
9 55
Затем вы можете создать комбинации, выполнив шаги в этот ответ .Я сделал несколько простых комбинаций ниже:
u = pd.DataFrame(np.abs(np.subtract.outer(u.volume, u.volume)), u.city_name, u.city_name)
stacked = u.stack()
stacked = pd.DataFrame({'cities': stacked.index.to_series(), 'diff': stacked})[['cities', 'diff']].reset_index(drop=True)
Пожалуйста, прочитайте .groupby()
документацию здесь .