import os, csv, re csv_file_name = "foodnutrition.csv" def sunk(): # Import the CSV file foods = pd.read_csv("foodnutrition.csv") # Calculate the difference between each pair of foods foodPairs = [] for i, food1 in foods.iterrows(): for j, food2 in foods.iterrows(): if i != j: diff = abs(food1.drop(["FoodCode", "FoodDescription", "FoodGroupName"]) - food2.drop(["FoodCode", "FoodDescription", "FoodGroupName"])).sum() foodPairs.append({"FoodDescription1": food1["FoodDescription"], "FoodDescription2": food2["FoodDescription"], "Difference": diff}) # Sort the pairs by difference foodPairs = sorted(foodPairs, key=lambda x: x["Difference"], reverse=True) # Format the data as a table and store it in a variable table = pd.DataFrame(foodPairs).to_string(index=False) # Create a subfolder named htmloutput in the current directory if it doesn't exist if not os.path.exists("./htmloutput"): os.mkdir("./htmloutput") # Create an HTML page for each food pair and store it in the htmloutput subfolder test = True # Set to true to generate only one HTML page, false to generate all pages if test: # Generate only one HTML page for testing purposes pair = foodPairs[0] urlPair = str(pair).replace(" ", "%20").replace("(", "_").replace(")", "_") htmlFile = f"./htmloutput/{urlPair}.html" # Write the HTML content to the file with open(htmlFile, "w") as f: f.write(f"""
Comparison of {pair}.
{table} """) print(f"HTML page generated: {htmlFile}") #read a csv file, it has the following columns #FoodCode FoodDescription FoodGroupName ALANINE ALCOHOL ALPHA CAROTENE ALPHA-TOCOPHEROL ALPHA-TOCOPHEROL, ADDED ARGININE ASH, TOTAL ASPARTAME ASPARTIC ACID BETA CAROTENE BETA CRYPTOXANTHIN BETAINE BETA-SITOSTEROL BETA-TOCOPHEROL BIOTIN CAFFEINE CALCIUM CAMPESTEROL CARBOHYDRATE, TOTAL (BY DIFFERENCE) CHOLESTEROL CHOLINE, TOTAL COPPER CYSTINE DELTA-TOCOPHEROL DIETARY FOLATE EQUIVALENTS ENERGY (KILOCALORIES) ENERGY (KILOJOULES) FAT (TOTAL LIPIDS) FATTY ACIDS, MONOUNSATURATED, 24:1undifferentiated, TETRACOSENO FATTY ACIDS, MONOUNSATURATED, 12:1, LAUROLEIC FATTY ACIDS, MONOUNSATURATED, 14:1, TETRADECENOIC FATTY ACIDS, MONOUNSATURATED, 15:1, PENTADECENOIC FATTY ACIDS, MONOUNSATURATED, 16:1c, HEXADECENOIC FATTY ACIDS, MONOUNSATURATED, 16:1t, HEXADECENOIC FATTY ACIDS, MONOUNSATURATED, 16:1undifferentiated, HEXADECENOIC FATTY ACIDS, MONOUNSATURATED, 17:1, HEPTADECENOIC FATTY ACIDS, MONOUNSATURATED, 18:1c, OCTADECENOIC FATTY ACIDS, MONOUNSATURATED, 18:1t, OCTADECENOIC FATTY ACIDS, MONOUNSATURATED, 18:1undifferentiated, OCTADECENOIC FATTY ACIDS, MONOUNSATURATED, 20:1, EICOSENOIC FATTY ACIDS, MONOUNSATURATED, 22:1c, DOCOSENOIC FATTY ACIDS, MONOUNSATURATED, 22:1t, DOCOSENOIC FATTY ACIDS, MONOUNSATURATED, 22:1undifferentiated, DOCOSENOIC FATTY ACIDS, MONOUNSATURATED, 24:1c, TETRACOSENOIC FATTY ACIDS, MONOUNSATURATED, TOTAL FATTY ACIDS, POLYUNSATURATED, 18:2 c,c n-6, LINOLEIC, OCTADECAD FATTY ACIDS, POLYUNSATURATED, 18:2i, LINOLEIC, OCTADECADIENOIC FATTY ACIDS, POLYUNSATURATED, 18:2t,t , OCTADECADIENENOIC FATTY ACIDS, POLYUNSATURATED, 18:2undifferentiated, LINOLEIC, OC FATTY ACIDS, POLYUNSATURATED, 18:3 c,c,c n-3 LINOLENIC, OCTADEC FATTY ACIDS, POLYUNSATURATED, 18:3 c,c,c n-6, g-LINOLENIC, OCTAD FATTY ACIDS, POLYUNSATURATED, 18:3i, LINOLENIC, OCTADECATRIENOIC FATTY ACIDS, POLYUNSATURATED, 18:3undifferentiated, LINOLENIC, O FATTY ACIDS, POLYUNSATURATED, 18:4, OCTADECATETRAENOIC FATTY ACIDS, POLYUNSATURATED, 20:2 c,c EICOSADIENOIC FATTY ACIDS, POLYUNSATURATED, 20:3 n-3 EICOSATRIENOIC FATTY ACIDS, POLYUNSATURATED, 20:3 n-6, EICOSATRIENOIC FATTY ACIDS, POLYUNSATURATED, 20:3, EICOSATRIENOIC FATTY ACIDS, POLYUNSATURATED, 20:4 n-6, ARACHIDONIC FATTY ACIDS, POLYUNSATURATED, 20:4, EICOSATETRAENOIC FATTY ACIDS, POLYUNSATURATED, 20:5 n-3, EICOSAPENTAENOIC (EPA) FATTY ACIDS, POLYUNSATURATED, 21:5 FATTY ACIDS, POLYUNSATURATED, 22:2, DOCOSADIENOIC FATTY ACIDS, POLYUNSATURATED, 22:3, FATTY ACIDS, POLYUNSATURATED, 22:4 n-6, DOCOSATETRAENOIC FATTY ACIDS, POLYUNSATURATED, 22:5 n-3, DOCOSAPENTAENOIC (DPA) FATTY ACIDS, POLYUNSATURATED, 22:6 n-3, DOCOSAHEXAENOIC (DHA) FATTY ACIDS, POLYUNSATURATED, CONJUGATED, 18:2 cla, LINOLEIC, OC FATTY ACIDS, POLYUNSATURATED, TOTAL FATTY ACIDS, POLYUNSATURATED, TOTAL OMEGA N-6 FATTY ACIDS, POLYUNSATURATED, TOTAL OMEGA N-3 FATTY ACIDS, SATURATED, 10:0, DECANOIC FATTY ACIDS, SATURATED, 12:0, DODECANOIC FATTY ACIDS, SATURATED, 13:0 TRIDECANOIC FATTY ACIDS, SATURATED, 14:0, TETRADECANOIC FATTY ACIDS, SATURATED, 15:0, PENTADECANOIC FATTY ACIDS, SATURATED, 16:0, HEXADECANOIC FATTY ACIDS, SATURATED, 17:0, HEPTADECANOIC FATTY ACIDS, SATURATED, 18:0, OCTADECANOIC FATTY ACIDS, SATURATED, 20:0, EICOSANOIC FATTY ACIDS, SATURATED, 22:0, DOCOSANOIC FATTY ACIDS, SATURATED, 24:0, TETRACOSANOIC FATTY ACIDS, SATURATED, 4:0, BUTANOIC FATTY ACIDS, SATURATED, 6:0, HEXANOIC FATTY ACIDS, SATURATED, 8:0, OCTANOIC FATTY ACIDS, SATURATED, TOTAL FATTY ACIDS, TOTAL TRANS-MONOENOIC FATTY ACIDS, TOTAL TRANS-POLYENOIC FATTY ACIDS, TRANS, TOTAL FIBRE, TOTAL DIETARY FOLIC ACID FRUCTOSE GALACTOSE GAMMA-TOCOPHEROL GLUCOSE GLUTAMIC ACID GLYCINE HISTIDINE HYDROXYPROLINE IRON ISOLEUCINE LACTOSE LEUCINE LUTEIN AND ZEAXANTHIN LYCOPENE LYSINE MAGNESIUM MALTOSE MANGANESE MANNITOL METHIONINE MOISTURE NATURALLY OCCURRING FOLATE NIACIN (NICOTINIC ACID) PREFORMED OXALIC ACID PANTOTHENIC ACID PHENYLALANINE PHOSPHORUS POTASSIUM PROLINE PROTEIN RETINOL RETINOL ACTIVITY EQUIVALENTS RIBOFLAVIN SELENIUM SERINE SODIUM SORBITOL STARCH STIGMASTEROL SUCROSE SUGARS, TOTAL THEOBROMINE THIAMIN THREONINE TOTAL DISACCHARIDES TOTAL FOLACIN TOTAL MONOSACCARIDES TOTAL NIACIN EQUIVALENT TOTAL PLANT STEROL TRYPTOPHAN TYROSINE VALINE VITAMIN B-12 VITAMIN B12, ADDED VITAMIN B-6 VITAMIN C VITAMIN D (D2 + D3) VITAMIN D (INTERNATIONAL UNITS) VITAMIN D2, ERGOCALCIFEROL VITAMIN K ZINC #i want a comparison of each food with another #it would contain numerous .html static files. htmlFile = f"./htmloutput/{urlPair}.html" # each html file will list one food compared to another based on the attributes of the column such as ALCOHOL # the biggest differences between the two food pairs will be sorted at the top. # use a table tr td to display the Nutritional Facts. #here is the python code i have thus far def clean_string(s): # Remove special characters s = re.sub(r'[^\w\s]', '', s) # Replace spaces with underscores s = re.sub(r'\s+', '_', s) # Convert to lowercase s = s.lower() return s def read_csv(filename): with open(filename, 'r') as f: reader = csv.DictReader(f) data = [row for row in reader] return data def main(): data = read_csv(csv_file_name) for i in range(len(data)): for j in range(i+1, len(data)): versus_clean_str = clean_string(data[i]['FoodDescription']) + '_versus_' + \ clean_string(data[j]['FoodDescription']) rows = [] for key in data[i].keys(): if key not in ['FoodCode', 'FoodDescription', 'FoodGroupName']: try: diff = abs(float(data[i][key]) - float(data[j][key])) except ValueError: diff = 0.0 rows.append((key, data[i][key], data[j][key], diff)) # Sort the rows by the difference (in descending order) rows.sort(key=lambda x: x[3], reverse=True) with open(f"./htmloutput/{versus_clean_str}.html", 'w') as f: f.write(f'') f.write(f"| Nutritional Fact | {data[i]['FoodDescription']} | {data[j]['FoodDescription']} | Difference |
|---|---|---|---|
| {row[0]} | {row[1]} | {row[2]} | {row[3]} |