Из списка в файл на Python - PullRequest
       14

Из списка в файл на Python

0 голосов
/ 27 февраля 2019

Представьте себе набор данных, например APT=[[10.2,5,6],[9.2,-7,8],[5.75,1,2]], и я хочу экспортировать в виде файла (мне все равно, если это .txt, .xslx или .csv) с заголовком ['APT','WN','WE'].

Я хочу, чтобы файл был хорошо сформирован (таблица типа

APT | WN | WE

10.2 | 5 | 6

9.2 | -7 | 8

5.75 | 1 | 2

Я пробовал разные вещи, такие как

with open("file.csv",'w') as f:
    wri= csv.writer(f)
    wri.writerow(["ATP","WN","WE"])
    for element in zip(*APT):
        wri.writerow(element)

, а также функцию to_excel из Pandas, и ни одна из них не работаеткак я хочу.

Есть идеи, как это исправить?

Заранее спасибо

PS: Извините, я не знаю, как добавить лучшие таблицы в StackOverflow

PS1: я прочитал Как экспортировать список с другим размером из Python в Excel , но я не могу получить правильную форму файла

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019
В пакете

Pandas есть метод, разработанный специально для вашей задачи: to_csv().

Вот ваш код:

# import module
import pandas as pd
# convert your data to DataFrame
df= pd.DataFrame(APT)
# name columns
df.columns = ['APT','WN','WE']
# save DataFrame as .csv
df.to_csv('apt.csv')
0 голосов
/ 27 февраля 2019

Это решение не для Pandas, а также для вас.Вы уже недалеко от окончательного решения:

with open("file.csv",'w') as f:
    wri= csv.writer(f, delimiter=';')
    wri.writerow(["ATP","WN","WE"])
    wri.writerows(APT)    # csv.writerows takes any iterable (your outer list) and goes through the iterables that it contains (the inner lists) and creates CSV lines from it.

Пожалуйста, обратитесь к документации модуля Python CSV для получения дополнительных параметров формата CSV.Это включает в себя параметры конфигурации для цитат, а также разделителей.

Это выходной файл, который вы получили бы с кодом выше:

ATP;WN;WE
10.2;5;6
9.2;-7;8
5.75;1;2

С другой настройкой разделителя (например, '\t' для символа табуляции) вы можете даже получить красивые таблицы, подобные этой:

ATP WN  WE
10.2    5   6
9.2 -7  8
5.75    1   2
0 голосов
/ 27 февраля 2019

Вы можете использовать pandas для этого.

import pandas as pd

df = pd.DataFrame(APT)
df.columns = ['APT','WN','WE']

Это даст вам:

>>> df
     APT  WN  WE
0  10.20   5   6
1   9.20  -7   8
2   5.75   1   2

Затем вы можете экспортировать его в .csv со встроенной функцией to_csv() как это:

df.to_csv('name_of_the_file', sep=';')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...