Как экспортировать Pandas DataFrame в CSV (с примером)
Вы можете использовать следующий синтаксис для экспорта кадра данных pandas в файл CSV:
df.to_csv (r' C:\Users\Bob\Desktop\my_data.csv', index= False )
Обратите внимание, что index=False указывает Python удалить столбец индекса при экспорте DataFrame. Не стесняйтесь отбрасывать этот аргумент, если вы хотите сохранить столбец индекса.
В следующем пошаговом примере показано, как использовать эту функцию на практике.
Шаг 1: Создайте фрейм данных Pandas
Во-первых, давайте создадим DataFrame pandas:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6 5 23 9 5
Шаг 2: Экспортируйте DataFrame в файл CSV
Далее экспортируем DataFrame в файл CSV:
#export DataFrame to CSV file df.to_csv (r' C:\Users\Bob\Desktop\my_data.csv', index= False )
Шаг 3. Просмотрите CSV-файл
Наконец, мы можем перейти к месту, куда мы экспортировали CSV-файл, и просмотреть его:
points,assists,rebounds 25,5,11 12,7,8 15,7,10 14,9,6 19,12,6 23,9,5
Обратите внимание, что индексного столбца нет в файле, поскольку мы указали index=False .
Также обратите внимание, что заголовки находятся в файле, поскольку аргументом по умолчанию в функции to_csv() является headers=True .
Ради интереса, вот как выглядел бы CSV-файл, если бы мы не указали аргумент index=False :
,points,assists,rebounds 0,25,5,11 1,12,7,8 2,15,7,10 3,14,9,6 4,19,12,6 5,23,9,5
Подробное руководство по функции to_csv() см.в документации pandas .
Руководство по Загрузка данных и выполнение запросов в кластере Apache Spark в Azure HDInsight
В этом руководстве описывается, как создать кадр данных из CSV-файла и как отправлять интерактивные запросы SQL Spark к кластеру Apache Spark в Azure HDInsight. В Spark кадр данных — это распределенная коллекция данных, упорядоченных в именованных столбцах. Она эквивалентна таблице в реляционной базе данных или фрейме данных в R/Python.
В этом руководстве описано следующее:
- Создание кадра данных из CSV-файла
- Выполнение запросов к кадру данных
Предварительные требования
Создание записной книжки Jupyter
Jupyter Notebook — это интерактивная среда Notebook, которая поддерживает различные языки программирования. Notebook позволяет работать с данными, объединять код с текстом Markdown и выполнять простые визуализации.
- Измените URL-адрес https://SPARKCLUSTER.azurehdinsight.net/jupyter , заменив SPARKCLUSTER именем кластера Spark. В веб-браузере введите измененный URL-адрес. При появлении запроса введите учетные данные для входа в кластер.
- На веб-странице Jupyter для кластеров Spark 2.4, выберите New (Создать)>PySpark, чтобы создать записную книжку. Для выпуска Spark 3.1 вместо этого выберите New (Создать)>PySpark3, чтобы создать записную книжку, поскольку ядро PySpark больше не доступно в Spark 3.1. Будет создана и открыта записная книжка с именем Untitled( Untitled.ipynb ).
Примечание Если записная книжка создается с использованием PySpark или ядра PySpark3, сеанс spark автоматически создается при выполнении первой ячейки кода. Вам не нужно явно создавать этот сеанс.
Создание кадра данных из CSV-файла
Приложения могут создавать кадры данных непосредственно из файлов или папок в удаленном хранилище, например в службе хранилища Azure или Azure Data Lake Storage, из таблицы Hive или из других источников данных, поддерживаемых Spark, таких как Azure Cosmos DB, Azure SQL DB, DW и т. д. На снимке экрана показан моментальный снимок файла hvac.csv, используемого в этом руководстве. CSV-файл содержит все кластеры HDInsight Spark. Эти данные демонстрируют колебания температуры в некоторых зданиях.
-
Вставьте следующий код в пустую ячейку записной книжки Jupyter Notebook и нажмите SHIFT+ВВОД для выполнения кода. Код импортирует типы, необходимые для этого сценария:
from pyspark.sql import * from pyspark.sql.types import *
При запуске интерактивного запроса в Jupyter в заголовке окна веб-браузера или вкладки будет отображаться состояние (Busy) (Занято), а также название приложения. Кроме того, рядом с надписью PySpark в верхнем правом углу окна будет показан закрашенный кружок. После завершения задания он изменится на кружок без заливки.
# Create a dataframe and table from sample data csvFile = spark.read.csv('/HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv', header=True, inferSchema=True) csvFile.write.saveAsTable("hvac")
Выполнение запросов к кадру данных
Когда таблица будет готова, выполните интерактивный запрос к данным.
-
В пустой ячейке приложения выполните следующий код:
%%sql SELECT buildingID, (targettemp - actualtemp) AS temp_diff, date FROM hvac WHERE date = \"6/1/13\"
Отобразятся следующие табличные данные.

Очистка ресурсов
С HDInsight ваши данные и записные книжки Jupyter Notebook сохраняются в Службе хранилища Azure или Azure Data Lake Storage, что позволяет безопасно удалить неиспользуемый кластер. Плата за кластеры HDInsight взимается, даже когда они не используются. Так как затраты на кластер во много раз превышают затраты на хранилище, экономически целесообразно удалять неиспользуемые кластеры. Если вы планируете сразу приступить к следующему руководству, можно оставить кластер.
Откройте кластер на портале Azure и выберите Удалить.
Кроме того, можно выбрать имя группы ресурсов, чтобы открыть страницу группы ресурсов, а затем щелкнуть Удалить группу ресурсов. Вместе с группой ресурсов вы также удалите кластер Spark в HDInsight и учетную запись хранения по умолчанию.
Дальнейшие действия
В этом учебнике описывается, как создать кадр данных из CSV-файла и как отправлять интерактивные запросы SQL Spark к кластеру Apache Spark в Azure HDInsight. Теперь переходите к следующей статье, в которой объясняется, как перенести зарегистрированные в Apache Spark данные в средство бизнес-аналитики, например в Power BI.
Как скачать таблицу из юпитер ноутбука?
Предположим, что у меня есть таблица в формате dataframe, я преобразую её в формат csv, используя to_csv, как теперь мне скачать эту таблицу?
Отслеживать
задан 15 авг 2021 в 16:57
67 1 1 серебряный знак 5 5 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Разберем на примере кода:
import pandas as pd cities = pd.DataFrame([['Sacramento', 'California'], ['Miami', 'Florida']], columns=['City', 'State']) cities.to_csv('cities.csv')
В строке cities.to_csv(‘cities.csv’) вы конвертирует DataFrame-файл и записываете в файл ‘cities.csv’, также можно указать прямой путь к файлу. Далее он сохраняется в рабочем каталоге запущенного файла. Следовательно, вам не надо будет скачивать сам конвертированный файл,он будет в той же директории, где находится ваш py-файл с кодом выше(если брать пример выше).
Как импортировать файл формата csv в python (panda)?
На что получил ошибку.
Пробовал закидывать файл в папку pandas (подпапка анаконды), не помогло. Пробовал также загрузить файл в окне стартовой страницы Jupiter- тоже не помогло. Ч.Я.Д.Н.Т.?
- Вопрос задан более трёх лет назад
- 2779 просмотров
1 комментарий
Простой 1 комментарий
Вам нужно прописать адрес расположения файла 131.csv или положить его в директорию, где находится файл Jupiter notebook..
Решения вопроса 1
Получил ошибку — нормально.
Скрыл её от нас — нехорошо.
Как мы тебе поможем?
Ответ написан более трёх лет назад
Нравится 3 4 комментария
Вениамин Белоусов @Venuhaha Автор вопроса
Просто мне казалось что я изначально делаю что-то не так. Так как в учебнике вообще этому не уделяется внимание, как 2+2. Не могу понять, как ему показать где лежит файл. Вообще все странно. Согласно учебнику- я пишу две строки кода и все.
Вот ошибка-
spoiler
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) in () 1 import pandas ----> 2 data = pandas . read_csv ( "titanic.csv " , index_col="PassengerId " ) D:\Anaconda\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_lines, memory_map, float_precision) 653 skip_blank_lines=skip_blank_lines) 654 --> 655 return _read(filepath_or_buffer, kwds) 656 657 parser_f.__name__ = name D:\Anaconda\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds) 409 410 try: --> 411 data = parser.read(nrows) 412 finally: 413 parser.close() D:\Anaconda\lib\site-packages\pandas\io\parsers.py in read(self, nrows) 1003 raise ValueError('skipfooter not supported for iteration') 1004 -> 1005 ret = self._engine.read(nrows) 1006 1007 if self.options.get('as_recarray'): D:\Anaconda\lib\site-packages\pandas\io\parsers.py in read(self, nrows) 1824 1825 names, data = self._do_date_conversions(names, data) -> 1826 index, names = self._make_index(data, alldata, names) 1827 1828 # maybe create a mi on the columns D:\Anaconda\lib\site-packages\pandas\io\parsers.py in _make_index(self, data, alldata, columns, indexnamerow) 1333 1334 elif not self._has_complex_date_col: -> 1335 index = self._get_simple_index(alldata, columns) 1336 index = self._agg_index(index) 1337 D:\Anaconda\lib\site-packages\pandas\io\parsers.py in _get_simple_index(self, data, columns) 1367 index = [] 1368 for idx in self.index_col: -> 1369 i = ix(idx) 1370 to_remove.append(i) 1371 index.append(data[i]) D:\Anaconda\lib\site-packages\pandas\io\parsers.py in ix(col) 1361 if not isinstance(col, compat.string_types): 1362 return col -> 1363 raise ValueError('Index %s invalid' % col) 1364 index = None 1365 ValueError: Index PassengerId invalid