Сценарий ниже читает в нескольких файлах CSV, объединяет некоторые и записывает их в файл Excel на двух разных листах.
Он также добавляет эту формулу (=IF(COUNTIFS(Meds!A:A,B2)>0,1,0)
) к последнему столбцу в каждой ячейке в столбце Meds, но мне нужно увеличить его, чтобы вторая ячейка была =IF(COUNTIFS(Meds!A:A,B3)>0,1,0)
и так далее.Я не могу понять, как написать цикл, который будет делать это.Я видел это post , но у меня есть проблемы с использованием openpyxl, поэтому я хотел бы избежать этой библиотеки.
import pandas as pd
# read in multiple csv files
df1 = pd.read_csv("file1.csv", encoding = 'utf-8')
df2 = pd.read_csv("file2.csv", encoding = 'utf-8')
meds = pd.read_csv("meds.csv", encoding = 'utf-8')
# create a list of dataframes (excluding meds)
dfs = [df1, df2]
# merge dataframes in list
df_final = reduce(lambda left,right: pd.merge(left,right,on='RecordKey'), dfs)
# add empty column
df_final["Meds"] = ""
# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('final.xlsx', engine='xlsxwriter')
# add formula to Meds
df_final['Meds'] = '=IF(COUNTIFS(Sheet2!A:A,E2)>0,1,0)'
# write to csv
df_final.to_excel(writer, sheet_name='Combined')
meds.to_excel(writer, sheet_name='Meds')
# Close the Pandas Excel writer and output the Excel file.
writer.save()