Pandas как сохранить список в csv - PullRequest
0 голосов
/ 19 июня 2020

У меня есть список в pandas, и я хочу записать его в файл csv, где каждый элемент представляет собой новую строку.

    list3= ["France","Germany","USA"]
    with open('your_file.csv', 'w') as f:
        f.write(str(list3))

Но вывод горизонтальный, а не вертикальный, и если кто-нибудь знает как избавиться от кавычек в выводе, я тоже был бы признателен.

Вывод с моим приведенным выше кодом: enter image description here

Вывод, который я хочу: enter image description here

Ответы [ 2 ]

2 голосов
/ 19 июня 2020

Это список Python, в поле зрения нет pandas.

In [26]: list3= ["France","Germany","USA"]                                      

Посмотрите, что дает str:

In [27]: str(list3)                                                             
Out[27]: "['France', 'Germany', 'USA']"

Это одна строка в скобках и кавычки.

То, что вы хотите, больше похоже:

In [28]: for word in list3: print(word)                                         
France
Germany
USA

Или записать то же самое в файл:

In [29]: with open('txt', 'w') as f: 
    ...:     for word in list3: 
    ...:         f.write('%s\n'%word) 
    ...:                                                                        
In [30]: cat txt                                                                
France
Germany
USA

Или с print file параметр:

In [31]: with open('txt', 'w') as f: 
    ...:     for word in list3: 
    ...:         print(word, file=f) 

или вы можете присоединить строки к новой строке:

In [33]: '\n'.join(list3)                                                       
Out[33]: 'France\nGermany\nUSA'
In [34]: with open('txt', 'w') as f: 
    ...:     print('\n'.join(list3), file=f) 

Вы можете поместить список в pandas DataFrame, но тогда вам нужно отключить столбцы и индексы при записи csv.

numpy также делает это с np.savetxt('txt',list3, fmt='%s').

Множество способов записать такой базовый c список строк в файл. Некоторые используют c, некоторые используют более мощные писатели.

1 голос
/ 19 июня 2020

Это можно сделать с помощью модуля CSV. Каждая строка должна быть списком, но вы можете сгенерировать их для записи csv, по одному на элемент в вашем списке

import csv
list3= ["France","Germany","USA"]
with open('your_file.csv', 'w') as f:
    csv.writer(f).writerows([row] for row in list3)

Вывод

France
Germany
USA

Возможно, вам вообще не понадобится модуль CSV . Это тоже напишет список. Разница в том, что в первом примере внутренние кавычки и запятые также не используются, если это есть в ваших данных.

import csv
list3= ["France","Germany","USA"]
with open('your_file.csv', 'w') as f:
    f.write("\n".join(list3))
...