Add files via upload

This commit is contained in:
sosokker 2023-05-02 10:11:53 +07:00 committed by GitHub
commit 83b136eba1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 348510 additions and 0 deletions

114
Essential/foodItem.py Normal file
View File

@ -0,0 +1,114 @@
class foodItem():
def __init__(self, row):
self.product_name = row['product_name']
self.brands = row['brands']
self.brands_tags = row['brands_tags']
self.categories = row['categories']
self.categories_tags = row['categories_tags']
self.categories_en = row['categories_en']
self.origins = row['origins']
self.origins_tags = row['origins_tags']
self.origins_en = row['origins_en']
self.countries = row['countries']
self.countries_tags = row['countries_tags']
self.countries_en = row['countries_en']
self.image_url = row['image_url']
self.image_ingredients_url = row['image_ingredients_url']
self.image_nutrition_url = row['image_nutrition_url']
self.energy_kcal_100g = row['energy-kcal_100g']
self.fat_100g = row['fat_100g']
self.saturated_fat_100g = row['saturated-fat_100g']
self.unsaturated_fat_100g = row['unsaturated-fat_100g']
self.omega_3_fat_100g = row['omega-3-fat_100g']
self.omega_6_fat_100g = row['omega-6-fat_100g']
self.omega_9_fat_100g = row['omega-9-fat_100g']
self.trans_fat_100g = row['trans-fat_100g']
self.cholesterol_100g = row['cholesterol_100g']
self.carbohydrates_100g = row['carbohydrates_100g']
self.sugars_100g = row['sugars_100g']
self.sucrose_100g = row['sucrose_100g']
self.glucose_100g = row['glucose_100g']
self.fructose_100g = row['fructose_100g']
self.lactose_100g = row['lactose_100g']
self.maltose_100g = row['maltose_100g']
self.fiber_100g = row['fiber_100g']
self.soluble_fiber_100g = row['soluble-fiber_100g']
self.insoluble_fiber_100g = row['insoluble-fiber_100g']
self.proteins_100g = row['proteins_100g']
self.salt_100g = row['salt_100g']
self.added_salt_100g = row['added-salt_100g']
self.sodium_100g = row['sodium_100g']
self.alcohol_100g = row['alcohol_100g']
self.vitamin_a_100g = row['vitamin-a_100g']
self.beta_carotene_100g = row['beta-carotene_100g']
self.vitamin_d_100g = row['vitamin-d_100g']
self.vitamin_e_100g = row['vitamin-e_100g']
self.vitamin_k_100g = row['vitamin-k_100g']
self.vitamin_c_100g = row['vitamin-c_100g']
self.vitamin_b1_100g = row['vitamin-b1_100g']
self.vitamin_b2_100g = row['vitamin-b2_100g']
self.vitamin_pp_100g = row['vitamin-pp_100g']
self.vitamin_b6_100g = row['vitamin-b6_100g']
self.vitamin_b9_100g = row['vitamin-b1_100g']
self.vitamin_b12_100g = row['vitamin-b12_100g']
self.bicarbonate_100g = row['bicarbonate_100g']
self.potassium_100g = row['potassium_100g']
self.chloride_100g = row['chloride_100g']
self.calcium_100g = row['calcium_100g']
self.phosphorus_100g = row['phosphorus_100g']
self.iron_100g = row['iron_100g']
self.magnesium_100g = row['magnesium_100g']
self.zinc_100g = row['zinc_100g']
self.copper_100g = row['copper_100g']
self.manganese_100g = row['manganese_100g']
self.fluoride_100g = row['fluoride_100g']
self.selenium_100g = row['selenium_100g']
self.chromium_100g = row['chromium_100g']
self.molybdenum_100g = row['molybdenum_100g']
self.iodine_100g = row['iodine_100g']
self.caffeine_100g = row['caffeine_100g']
self.carbon_footprint_100g = row['carbon-footprint_100g']
self.carbon_footprint_from_meat_or_fish_100g = row['carbon-footprint-from-meat-or-fish_100g']
self.cocoa_100g = row['cocoa_100g']
def is_vegan(self):
if "meat" not in self.categories_en.lower() and "dairy" not in self.categories_en.lower():
return True
else:
return False
def nutrient_score_intl(self):
# define the nutrient score factors
nutrient_factors = {'fat': 9, 'saturated_fat': 10, 'trans_fat': 10, 'cholesterol': 5,
'sodium': 6, 'carbohydrates': 7, 'sugars': 6, 'fiber': 5,
'proteins': 5, 'vitamin_a': 15, 'vitamin_c': 15, 'calcium': 10,
'iron': 10}
# calculate the nutrient score for each nutrient
nutrient_scores = {}
for nutrient, factor in nutrient_factors.items():
value = getattr(self, nutrient+'_100g')
if value is not None:
nutrient_scores[nutrient] = min(100, max(0, factor * (value / self._get_daily_requirement(nutrient))))
# sum the nutrient scores to arrive at the total nutrient score
total_score = sum(nutrient_scores.values())
return total_score
def _get_daily_requirement(self, nutrient):
# define the daily requirement for each nutrient
daily_requirement = {'fat': 70, 'saturated_fat': 20, 'trans_fat': 2, 'cholesterol': 300,
'sodium': 2000, 'carbohydrates': 260, 'sugars': 90, 'fiber': 38,
'proteins': 50, 'vitamin_a': 900, 'vitamin_c': 90, 'calcium': 1000,
'iron': 18}
# for nutrients without a daily requirement, return None
return daily_requirement.get(nutrient, None)
@classmethod
def load_from_dataframe(cls, df):
products = []
for i, row in df.iterrows():
product = cls(row)
products.append(product)
return products

348396
main.ipynb Normal file

File diff suppressed because it is too large Load Diff