Эта статья возникла из личного публичного аккаунта:TechFlow, оригинальность это не просто, прошу внимания
СегодняТема по обработке данных pandasВо второй статье поговорим о самой важной структуре данных в пандах — DataFrame.
В предыдущей статье мы представили использование Series, а также упомянули, что Series эквивалентен одномерному массиву, но pandas инкапсулирует для нас множество удобных и простых в использовании API. А DataFrame можно просто понимать какдикт состоит из серии, который объединяет данные в двумерную таблицу. И он предоставляет нам множество интерфейсов для обработки данных на уровне таблиц и пакетной обработки данных, что значительно снижает сложность обработки данных.
Создать кадр данных
DataFrame — это табличная структура данных, которая имеет два индекса, а именноиндекс строки и индекс столбца, так что мы можем легко получить соответствующую строку и столбец. Это значительно снижает сложность поиска данных для обработки данных.
Во-первых, начнем с самого простого, как создать DataFrame.
создать из словаря
Мы создаем словарь, ключ которого — это имя столбца, а значение — список.Когда мы передаем этот словарь в конструктор DataFrame, он будетИспользуйте ключ в качестве имени столбца и значение в качестве соответствующего значения.Создайте для нас DataFrame.
Когда мы выведем в jupyter, он автоматически отобразит для нас содержимое DataFrame в виде таблицы.
Создать из пустых данных
Мы также можем создать DataFrame из двумерного массива numpy, если мы просто передадим массив numpy без указания имени столбца, тогда pandasсоздаст для нас столбцы с числами в качестве индексов:
Когда мы создаем его, мы передаем список строк для поля столбцов, чтобы указать для него имя столбца:
читать из файла
Еще одна очень мощная особенность панд заключается в том, что они могутСоздайте DataFrame из чтения данных из различных форматов файлов, такие как обычно используемые Excel, csv или даже база данных.
Для структурированных данных, таких как excel, csv, json и т. д., pandas предоставляет специальный API, мы можем найти соответствующий API и использовать его:
Если она в каком-то специальном формате, не беда, мы используем read_table, которая умеет читать данные из различных текстовых файлов, черезвходящий разделительи другие параметры для завершения создания. Например, в предыдущей статье о проверке эффекта уменьшения размерности PCA мы считывали данные из файла в формате .data. Разделителем между столбцами и столбцами в этом файле является пробел, а не запятая csv или табличный символ. мы проходимПередайте параметр sep, указание разделителя завершает чтение данных.
Этот параметр заголовка указывает, какие строки файла используются в качестве имен столбцов данных,Заголовок по умолчанию = 0, который будет использовать первую строку в качестве имени столбца. Если в данных нет имени столбца, нужно указать header=None, иначе будут проблемы. Нам редко приходится использовать многоуровневые имена столбцов, поэтому, как правило, чаще всего используется значение по умолчанию или приравнивается к None.
во всех этихНаиболее часто используемый метод создания DataFrame — последний., читать из файла. Потому что, когда мы занимаемся машинным обучением или участвуем в каких-то соревнованиях в kaggle, данные зачастую уже готовы и отдаются нам в виде файлов, и очень мало случаев, когда нам нужно создавать данные самим. Если это в реальном рабочем сценарии, хотя данных в файле не будет, будет источник, который обычно хранится на некоторых платформах больших данных, и модель получает обучающие данные с этих платформ.
Так что в целом другими методами создания DataFrames мы пользуемся редко, знаем немного, и фокусируемся на освоении метода чтения из файлов.
Общие операции
Ниже представлены некоторые общие операции панд, которые я изучил, прежде чем систематически изучать, как использовать панды. Причина для понимания также проста, потому что они так часто используются, что можно сказать, чтоСодержание здравого смысла, которое вы должны знать.
Просмотр данных
Экземпляр запуска DataFrame в jupyter распечатает для нас все данные в DataFrame.Если строк данных слишком много, средняя часть будет опущена в виде многоточия. Для DataFrame с большим объемом данных мы обычно не выводим отображение таким образом напрямую, а выбираем отображение первых нескольких фрагментов данных или последних нескольких фрагментов данных. Здесь вам нужно использовать два API.
Метод отображения первых нескольких фрагментов данных называется заголовком., который принимает параметр, позволяющий указать, что он отображает количество частей данных, которые мы указываем с нуля.
Поскольку есть API, которые показывают первые несколько статей, есть также API, которые показывают последние.tail. Через него мы можем просмотреть последнее указанное количество данных в DataFrame:
Столбец CRUD
Как мы упоминали ранее, для DataFrame это фактически эквивалентно словарю, состоящему из Series. Поскольку это dict, мы можем естественным образом получить указанную серию в соответствии со значением ключа.
Есть два способа получить указанный столбец в DataFrame, мы можемпо имени столбца .addпуть или такжеСпособ поиска элементов по dictчтобы узнать:
мы тожеМожет читать несколько столбцов одновременно, если он многоколоночный, поддерживается только один метод — метод запроса элементов через dict. Он позволяет получать и передавать список, и вы можете узнать данные, соответствующие столбцам в списке. Возвращаемый результат — это новый DataFrame с этими новыми столбцами.
мы можемудалить ненужный нам столбец с помощью del:
Нам также очень просто создать новый столбец, мы можем назначить его как диктофон,Присвоить значение непосредственно DataFrameПросто:
Присвоенный объект - это не только действительное число,также может быть массивом:
Нам также очень просто изменить столбец, и мы также можем перезаписать исходные данные, назначив тот же метод.
Преобразовать в массив numpy
Иногда нам неудобно использовать панды, если вы хотите получить исходные данные, соответствующие ему, вы можете напрямуюИспользуйте .values, чтобы получитьDataFrame соответствующий массив numpy:
так какКаждый столбец в DataFrame имеет один типи все типы общего доступа к данным после преобразования в массивы numpy. Тогда панды найдут общий тип для всех столбцов, поэтому вы часто получаете тип объекта. Так что лучше всего проверить тип перед использованием .values, чтобы убедиться, что нет ошибки из-за типа.
Суммировать
В сегодняшней статье мы узнали о взаимосвязи между DataFrame и Series, а также узнали некоторые основы и распространенное использование DataFrame. Хотя DataFrame может быть аппроксимирован как dict, состоящий из Series, на самом деле, как отдельная структура данных, он также имеет множество собственных API, поддерживает множество причудливых операций и является для нас мощным инструментом для обработки данных.
Профессиональная организация занималась статистикой.70% времени будет потрачено на обработку данных. Время на реальное написание модели и настройку параметров может составлять менее 20%, из чего мы видим необходимость и важность обработки данных. В области Python pandas — лучший скальпель и набор инструментов для обработки данных, надеюсь, каждый сможет его освоить.
Если вам понравилась эта статья, если вы можете, пожалуйста, приходите и немного поддержите меня (Подписывайтесь, смотрите, лайкайте).
В этой статье используетсяmdniceнабор текста