@Cipo

Как записать все данные в csv файл?

У меня есть два файла у которых я сравниваю id если id одинаковые записываю строки данных в третий файл, в консоле это выглядит вот так:
Скриншот фрагмента кода удалён модератором.

В файл который я записываю результат выглядит вот так:
Скриншот фрагмента кода удалён модератором.

Проблема в том, что в консоле он вывел правильных результат, а в csv файл записал только одну строку данных, а надо все 400

df.to_csv(r'C:\pythonProject5\my_data.csv')
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Ну если в консоли все работает, а в файл записал только один результат, то причина в том что файл все время перезаписывается.
df.to_csv(r'C:\pythonProject5\my_data.csv',mode='a',header=False)

Это если файл уже существует, если же нет. То первый раз вне цикла один раз запишите пустой csv. c именами ваших колонок.
то есть
columns = df.columns
empty_df = pd.DataFrame(columns=columns)
empty_df.to_csv(r'C:\pythonProject5\my_data.csv')

и потом как я привел выше будет работать.

Ну а вообще так не делается все собирается в один датафрейм и потом пишется в файл.
ваш псевдо код будет иметь вид
dfs = []
for i in range(длина):
    Здесь вы сравниваете и создаете датафрефм но вместо записи его в файл добавляете в список
    dfs.append(df)
final_df = pd.concat(dfs,ignore_index=True)
final_df.to_csv()

Вот така структура псевдо кода предпочтительнее чем каждый раз писать в файл. Опять же если все храните в файлах и они уже существует то mode='a' и header=False. что бы имена колонок не записывал.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы