@hardwellZero

Как записать в csv?

Добрый вечер, Тостер ;)
Пытаюсь записать в csv файл несколько значений из разных листов.
list1 = ['1', '2', '3']
list2 = ['a', 'b', 'c']
list3 = ['x', 'y', 'z']

В итоге хочу получить:
1, a, x
2, b, y
3, c, z

Сейчас записываю вот таким образом:
resultFile = open("test.csv",'wb')
wr = csv.writer(resultFile, delimiter='\n')
wr.writerow(list1)

Но так записывает только элементы из первого листа, как добавить остальные?
  • Вопрос задан
  • 11234 просмотра
Решения вопроса 1
sim3x
@sim3x
list1 = ['1', '2', '3']
list2 = ['a', 'b', 'c']
list3 = ['x', 'y', 'z']

with open('eggs.csv', 'wb') as f:
    wr = csv.writer(f)
    wr.writerows([(list1[i], list2[i], list3[i]) for i in range(len(list1))])
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@lPolar
data scientist
Ну что за дурацкая привычка к кустарщине - поэлементные циклы и построчное сохранение.
Используйте высокоуровневые инструменты.
import pandas as pd
list1 = ['1', '2', '3']
list2 = ['a', 'b', 'c']
list3 = ['x', 'y', 'z']
frame = pd.DataFrame([list1,list2,list3]) # собираем фрейм
frame.to_csv('my_csv_export.csv',index=False) #экспортируем в файл
Ответ написан
Комментировать
@vikholodov
Что если массивы формируются циклом, как записывать каждый массив в отдельный столбец? У меня просто перезаписывается столбец
def main():
    keyword = ['окна', 'окна ПВХ']

    for i in keyword:
        url = 'https://yandex.ru/search/?text='+i+'&lr=22&rstr=-22'
        all_links = get_all_links(get_html(url)) #получаем список ссылок по ключевому слову i
        for links in all_links:
            frame = pd.DataFrame(all_links, columns=[i])  # собираем фрейм
            frame.to_csv('my_csv_export.csv', index=False)  # экспортируем в файл
Ответ написан
Ваш ответ на вопрос

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

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