Python для цикла, хранящего только последнее значение

#python #python-3.x #for-loop

#питон #python-3.x #для-петли

Вопрос:

Мой код удаляет данные с общедоступного сайта, сохраняет их в формате df и сохраняет в формате csv, но мой код работает плохо.

 for ano in lista_ano:  for distribuidora in lista_distribuidores:  for mes in lista_mes:  scraping = pd.read_html('https://www2.aneel.gov.br/aplicacoes/indicadores_de_qualidade/decFecSegMensal.cfm?mes={}amp;ano={}amp;regiao=SEamp;distribuidora={}amp;tipo=d'.format(mes,ano,distribuidora))  dfs= pd.DataFrame(scraping[0])  dfs.drop(dfs.tail(3).index,inplace=True)  dfs.drop(dfs.head(2).index,inplace=True)  dfs = dfs.assign(MES = '{}'.format(mes))  dfs = dfs.assign(ANO = '{}'.format(ano))  dfs = dfs.assign(DISTRIBUIDORA = '{}'.format(distribuidora))  all_dfs = pd.DataFrame(dfs)  all_dfs.to_csv('final_data.csv', encoding= 'utf-8')  

Моя проблема здесь в том, что мои all_dfs.to_csv создают новый csv для каждого цикла и не хранят данные в одном и том же локальном файле.

Комментарии:

1. Что ты изменил?

2. я лучше написал о своих проблемах, я не видел, что мое сообщение уже было опубликовано.

3. Вы перезаписываете один и тот же CSV-файл новыми данными на каждой итерации ваших циклов. Все, что было написано в предыдущей итерации, теряется.

4. Этот код перезаписывается в файл final_data.csv на каждом шаге цикла. Однако неясно, чего вы пытаетесь достичь, поэтому я не могу сказать вам больше, чем это.

Ответ №1:

Вы перезаписываете существующий csv-файл на каждой итерации.

Чтобы исправить это, просто укажите, что вы хотите добавить вместо записи по

all_dfs.to_csv('final_data.csv', encoding='utf-8', mode='a')