Файл Excel перезаписывается каждый раз в итерациях цикла outlook.
Это означает, что в таблице сохраняется только последняя итерация.
Чтобы решить эту проблему, создайте модуль записи перед внешним циклом и сохраните конкатенированный кадр данных в электронной таблице вне цикла.
Кроме того, начальная строка установлена на 1, поэтому запись начнется с начала листа. Обновление должно соответствовать количеству строк в добавленном кадре данных.
def CCC_90(df_1,x):
writer = pd.ExcelWriter('No3_dVSa.xlsx', engine='xlsxwriter')
startrow = 1
for i in x:
# ...
appended_data.to_excel(writer, sheet_name='Sheet1', startrow=startrow)
startrow = len(appended_data)
writer.save()
Также еще одна вещь, в зависимости от того, является ли x
списком индексов, вы можете iloc со списком, чтобы получить фрейм данных со строками из списка и реорганизовать циклы.
def CCC_90(df_1,x):
writer = pd.ExcelWriter('No3_dVSa.xlsx', engine='xlsxwriter')
# the next line should result in a dataframe with
# a column containing the feature numbers say fc
feature_nums = df_1.iloc[x]
# getting the feature names is more direct
feature_names = dfFeaturename.iloc[feature_nums.fc.tolist()]
feature_names.to_excel(writer, sheet_name='Sheet1', startrow=1)
write.save()