данные:
Country ITEM_TYPE Ship Date TOTAL_COST
0 Chad Office Supplies 2/12/2011 2353920.64
1 Latvia Beverages 1/23/2016 34174.25
2 Pakistan Vegetables 2/1/2011 592408.95
3 Democratic Republic of the Congo Household 10/6/2012 3861014.82
4 Czech Republic Beverages 12/5/2015 110978.89
5 South Africa Beverages 8/21/2012 314085.20
6 Laos Vegetables 3/20/2011 438737.25
7 China Baby Food 5/12/2017 530868.60
8 Eritrea Meat 1/10/2015 886561.39
9 Haiti Office Supplies 7/20/2015 3253177.12
10 Zambia Cereal 8/24/2016 84787.64
Я хотел бы вернуть все записи, где TOTAL_COST
превышает 2 стандартных отклонения для конкретной комбинации COUNTRY
& ITEM_TYPE
этой записи.
Я получаю стандартное отклонение для каждой комбинации, используя следующее:
stdevs = data.groupby(['Country', 'ITEM_TYPE'])['TOTAL_COST'].std()
Моя первая попытка была следующей:
results = data[data['Total Cost'] > 2*stdevs[data[['Country']][data['Item Type']]]]
URL-адрес используемых фиктивных данных (10 000 записей):http://eforexcel.com/wp/downloads-18-sample-csv-files-data-sets-for-testing-sales/