Unnamed 0 pandas что это

Моя шпаргалка по pandas

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

Возможность быстро находить описания функций позволяет программистам продуктивно работать, не теряя состояния потока. Поэтому я и создал представленную здесь шпаргалку по pandas и включил в неё то, чем пользуюсь каждый день, создавая веб-приложения и модели машинного обучения.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

1. Подготовка к работе

Если вы хотите самостоятельно опробовать то, о чём тут пойдёт речь, загрузите набор данных Anime Recommendations Database с Kaggle. Распакуйте его и поместите в ту же папку, где находится ваш Jupyter Notebook (далее — блокнот).

Теперь выполните следующие команды.

После этого у вас должна появиться возможность воспроизвести то, что я покажу в следующих разделах этого материала.

2. Импорт данных

▍Загрузка CSV-данных

Здесь я хочу рассказать о преобразовании CSV-данных непосредственно в датафреймы (в объекты Dataframe). Иногда при загрузке данных формата CSV нужно указывать их кодировку (например, это может выглядеть как encoding=’ISO-8859–1′ ). Это — первое, что стоит попробовать сделать в том случае, если оказывается, что после загрузки данных датафрейм содержит нечитаемые символы.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

▍Создание датафрейма из данных, введённых вручную

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

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Данные, введённые вручную

▍Копирование датафрейма

Копирование датафреймов может пригодиться в ситуациях, когда требуется внести в данные изменения, но при этом надо и сохранить оригинал. Если датафреймы нужно копировать, то рекомендуется делать это сразу после их загрузки.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

3. Экспорт данных

▍Экспорт в формат CSV

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

4. Просмотр и исследование данных

▍Получение n записей из начала или конца датафрейма

Сначала поговорим о выводе первых n элементов датафрейма. Я часто вывожу некоторое количество элементов из начала датафрейма где-нибудь в блокноте. Это позволяет мне удобно обращаться к этим данным в том случае, если я забуду о том, что именно находится в датафрейме. Похожую роль играет и вывод нескольких последних элементов.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Данные из начала датафрейма

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Данные из конца датафрейма

▍Подсчёт количества строк в датафрейме

▍Подсчёт количества уникальных значений в столбце

Для подсчёта количества уникальных значений в столбце можно воспользоваться такой конструкцией:

▍Получение сведений о датафрейме

В сведения о датафрейме входит общая информация о нём вроде заголовка, количества значений, типов данных столбцов.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Сведения о датафрейме

▍Вывод статистических сведений о датафрейме

Знание статистических сведений о датафрейме весьма полезно в ситуациях, когда он содержит множество числовых значений. Например, знание среднего, минимального и максимального значений столбца rating даёт нам некоторое понимание того, как, в целом, выглядит датафрейм. Вот соответствующая команда:

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Статистические сведения о датафрейме

▍Подсчёт количества значений

Для того чтобы подсчитать количество значений в конкретном столбце, можно воспользоваться следующей конструкцией:

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Подсчёт количества элементов в столбце

5. Извлечение информации из датафреймов

▍Создание списка или объекта Series на основе значений столбца

Это может пригодиться в тех случаях, когда требуется извлекать значения столбцов в переменные x и y для обучения модели. Здесь применимы следующие команды:

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты работы команды anime[‘genre’].tolist()

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты работы команды anime[‘genre’]

▍Получение списка значений из индекса

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

▍Получение списка значений столбцов

Вот команда, которая позволяет получить список значений столбцов:

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

6. Добавление данных в датафрейм и удаление их из него

▍Присоединение к датафрейму нового столбца с заданным значением

Иногда мне приходится добавлять в датафреймы новые столбцы. Например — в случаях, когда у меня есть тестовый и обучающий наборы в двух разных датафреймах, и мне, прежде чем их скомбинировать, нужно пометить их так, чтобы потом их можно было бы различить. Для этого используется такая конструкция:

▍Создание нового датафрейма из подмножества столбцов

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

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результат выполнения команды

▍Удаление заданных столбцов

Этот приём может оказаться полезным в том случае, если из датафрейма нужно удалить лишь несколько столбцов. Если удалять нужно много столбцов, то эта задача может оказаться довольно-таки утомительной, поэтому тут я предпочитаю пользоваться возможностью, описанной в предыдущем разделе.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

▍Добавление в датафрейм строки с суммой значений из других строк

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результат выполнения команды

Команда вида df.sum(axis=1) позволяет суммировать значения в столбцах.

7. Комбинирование датафреймов

▍Конкатенация двух датафреймов

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

В данном примере мы сначала разделяем датафрейм на две части, а потом снова объединяем эти части:

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Датафрейм, объединяющий df1 и df2

▍Слияние датафреймов

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

8. Фильтрация

▍Получение строк с нужными индексными значениями

Индексными значениями датафрейма anime_modified являются названия аниме. Обратите внимание на то, как мы используем эти названия для выбора конкретных столбцов.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

▍Получение строк по числовым индексам

Следующая конструкция позволяет выбрать три первых строки датафрейма:

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

▍Получение строк по заданным значениям столбцов

Для получения строк датафрейма в ситуации, когда имеется список значений столбцов, можно воспользоваться следующей командой:

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

Если нас интересует единственное значение — можно воспользоваться такой конструкцией:

▍Получение среза датафрейма

Эта техника напоминает получение среза списка. А именно, речь идёт о получении фрагмента датафрейма, содержащего строки, соответствующие заданной конфигурации индексов.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

▍Фильтрация по значению

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

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

9. Сортировка

Для сортировки датафреймов по значениям столбцов можно воспользоваться функцией df.sort_values :

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

10. Агрегирование

▍Функция df.groupby и подсчёт количества записей

Вот как подсчитать количество записей с различными значениями в столбцах:

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

▍Функция df.groupby и агрегирование столбцов различными способами

▍Создание сводной таблицы

Для того чтобы извлечь из датафрейма некие данные, нет ничего лучше, чем сводная таблица. Обратите внимание на то, что здесь я серьёзно отфильтровал датафрейм, что ускорило создание сводной таблицы.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

11. Очистка данных

▍Запись в ячейки, содержащие значение NaN, какого-то другого значения

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Таблица, содержащая значения NaN

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты замены значений NaN на 0

12. Другие полезные возможности

▍Отбор случайных образцов из набора данных

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

▍Перебор строк датафрейма

Следующая конструкция позволяет перебирать строки датафрейма:

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Результаты выполнения команды

▍Борьба с ошибкой IOPub data rate exceeded

Если вы сталкиваетесь с ошибкой IOPub data rate exceeded — попробуйте, при запуске Jupyter Notebook, воспользоваться следующей командой:

Итоги

Здесь я рассказал о некоторых полезных приёмах использования pandas в среде Jupyter Notebook. Надеюсь, моя шпаргалка вам пригодится.

Источник

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

How to Drop Rows in Pandas : Know Various Approaches

GET FREE AMZAON AUDIOBOOKS

An unnamed column in pandas comes when you are reading the CSV file using it. Sometimes we require to drop columns in the dataset that we are not required. It not only saves memory but is also helpful in analyzing the data efficiently. One approach is removing the NaN value or some other value. The second approach is to drop unnamed columns in pandas. In this entire tutorial, I will discuss how to easily remove unnamed column errors while reading a CSV file.

Steps by Step to drop unnamed column in pandas

Step1: Import all the necessary libraries.

The first and basic step is to import python libraries. Here in our example, We are using only pandas. So let’s import them. However, if you have not installed pandas in your system, you can read How to install pandas in the dedicated tutorial.

Step 2: Create a DataFrame.

Now let’s create a Dataframe for demonstrating purpose. You can do it by using pandas.Dataframe() method.

The following argument I am passing. It is done only for creation purposes.

x: It allows us to put value in the entire row as “x”.

index: It will create an index column. In our example rows from 0 to 4.

columns: Name of the columns.

Output

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это Sample DataFrame Creation for Unnamed Column Example

Step 3: Export or Save it as CSV File.

The next step is to save this dataframe as CSV. Some readers might have asked, Why I am doing so? The answer is simple. I want to read the CSV file that outputs the dataframe with the unnamed column. You can export any dataframe using the to_csv() method.

It will save dataframe with the filename “demo_file.csv“.

Step 4: Read the Exported CSV File

After exporting the dataframe as a CSV file, let’s now read it. You can read the CSV file using the read_csv() method.

Execute the following code to read the dataframe.

If you output the dataframe you will also get the unnamed column error like below.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это Unnamed Column Error

And if you also print the columns using df2.columns you will see the unnamed columns also.

Step 5: Follow the following method to drop unnamed column in pandas

Method 1: Use the index = False argument

In this method, you have to not directly output the dataframe to the CSV file. But you should also include index = False argument. It will automatically drop the unnamed column in pandas. And if you want to set the index for the dataframe then you can call the df.set_index() method on any column. You will get the output as below.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это Exporting the Dataframe to CSV with index set as False

Method 2: Filtering the Unnamed Column

The second method to drop unnamed column is filtering the dataframe using str.match. It can be also known as continual filtering.

Execute the code below to drop the column.

You will get the following output.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это Dropping the Unnamed Column by Filtering the Unnamed Column

Method 3: Drop the Unnamed Column in Pandas using drop() method

In this example, you will use the drop() method. You have to pass the “Unnamed: 0” as its argument. Execute the code below.

You will get the following output.

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это Drop the Unnamed Column in Pandas using drop() method

Conclusion

One of my team member recently started learning from Audible books. He is experiencing learning easy as never before. Why we miss lets signup together.

These are the method to remove the issue of the drop unnamed column. You should note that while exporting the dataset in form of CSV you should always include index = False. It will remove the error automatically. However, if you have already had dataframe that outputs this column then you can try other methods.

Hope this tutorial has solved your issue. If you have any queries then you can contact us for more information.

Other Questions

How to remove the index from dataframe pandas

Sometimes you want to remove the index from the dataframe. If the column is the index you have to first reset the index and then drop the column. Use the following line of code to remove the index from the dataframe.

You can also first reset the index column and then use the drop() method on the column name you want to remove.

How to access unnamed columns in pandas

Sometimes you want to access unnamed columns in pandas. You can do so by renaming the column. You will use the rename() function for that.

The above code will rename the column with your new column name and now you can access the column.

Learn from Experts on Udemy

Unnamed 0 pandas что это. Смотреть фото Unnamed 0 pandas что это. Смотреть картинку Unnamed 0 pandas что это. Картинка про Unnamed 0 pandas что это. Фото Unnamed 0 pandas что это

Join our list

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.

We respect your privacy and take protecting it seriously

Thank you for signup. A Confirmation Email has been sent to your Email Address.

Источник

Как избавиться от «Unnamed: 0» столбца в pandas DataFrame?

CSV читается вместе с этим:

Это очень раздражает! У кого-нибудь есть идея, как от этого избавиться?

5 ответов

У меня есть следующее dataframe: import pandas as pd df=pd.DataFrame([[1,11,’a’],[1,12,’a’],[1,11,’a’],[1,12,’a’],[1,7,’a’], [1,12,’a’]]) df.columns=[‘id’,’code’,’name’] df id code name 0 1 11 a 1 1 12 a 2 1 11 a 3 1 12 a 4 1 7 a 5 1 12 a Как показано в приведенном выше dataframe, значение столбца.

Обычно это вызвано тем, что ваш CSV был сохранен вместе с (неназванным) индексом ( RangeIndex ).

(На самом деле исправление должно быть сделано при сохранении DataFrame, но это не всегда вариант.)

Обходной путь: read_csv с аргументом index_col=[0]

Но, как уже упоминалось выше, это не всегда вариант.

Временное решение: Фильтрация с помощью str.match

Если вы не можете изменить код для чтения/записи файла CSV, вы можете просто удалить столбец, отфильтровав его с помощью str.match :

Чтобы получить доступ ко всем безымянным столбцам, вы также можете использовать regex, например df.drop(df.filter(regex=»Unname»),axis=1, inplace=True)

Просто удалите этот столбец, используя: del df[‘column_name’]

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

Проблема в том, что когда я транспонирую DataFrame, заголовок транспонированного DataFrame становится числовыми значениями индекса, а не значениями в столбце id. См. ниже исходные данные для.

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

Есть два DataFrames, которые я хочу объединить: DataFrame A columns: index, userid, locale (2000 rows) DataFrame B columns: index, userid, age (300 rows) Когда я выполняю следующее: pd.merge(A, B.

У меня есть следующее dataframe: import pandas as pd df=pd.DataFrame([[1,11,’a’],[1,12,’a’],[1,11,’a’],[1,12,’a’],[1,7,’a’], [1,12,’a’]]) df.columns=[‘id’,’code’,’name’] df id code name 0 1 11 a 1 1.

Я пытаюсь создать файл csv из dataframe, который будет выглядеть так time, price, vol 178, 310, 10 299, 510, 11 378, 310, 11 мой код дает мне это time, price, vol 1 178 310, 10 2 299, 510, 11 3 378.

Я пытаюсь получить только название команды и удалить записи команды, которые были прикреплены, когда я выскребал таблицу. Я знаю, что могу использовать rstrip(), но я не хочу вводить все записи.

Источник

Как избавиться от «Unnamed: 0» столбца в pandas DataFrame?

CSV читается вместе с этим:

Это очень раздражает! У кого-нибудь есть идея, как от этого избавиться?

5 ответов

У меня есть следующее dataframe: import pandas as pd df=pd.DataFrame([[1,11,’a’],[1,12,’a’],[1,11,’a’],[1,12,’a’],[1,7,’a’], [1,12,’a’]]) df.columns=[‘id’,’code’,’name’] df id code name 0 1 11 a 1 1 12 a 2 1 11 a 3 1 12 a 4 1 7 a 5 1 12 a Как показано в приведенном выше dataframe, значение столбца.

Обычно это вызвано тем, что ваш CSV был сохранен вместе с (неназванным) индексом ( RangeIndex ).

(На самом деле исправление должно быть сделано при сохранении DataFrame, но это не всегда вариант.)

Обходной путь: read_csv с аргументом index_col=[0]

Но, как уже упоминалось выше, это не всегда вариант.

Временное решение: Фильтрация с помощью str.match

Если вы не можете изменить код для чтения/записи файла CSV, вы можете просто удалить столбец, отфильтровав его с помощью str.match :

Чтобы получить доступ ко всем безымянным столбцам, вы также можете использовать regex, например df.drop(df.filter(regex=»Unname»),axis=1, inplace=True)

Просто удалите этот столбец, используя: del df[‘column_name’]

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

Проблема в том, что когда я транспонирую DataFrame, заголовок транспонированного DataFrame становится числовыми значениями индекса, а не значениями в столбце id. См. ниже исходные данные для.

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

Есть два DataFrames, которые я хочу объединить: DataFrame A columns: index, userid, locale (2000 rows) DataFrame B columns: index, userid, age (300 rows) Когда я выполняю следующее: pd.merge(A, B.

У меня есть следующее dataframe: import pandas as pd df=pd.DataFrame([[1,11,’a’],[1,12,’a’],[1,11,’a’],[1,12,’a’],[1,7,’a’], [1,12,’a’]]) df.columns=[‘id’,’code’,’name’] df id code name 0 1 11 a 1 1.

Я пытаюсь создать файл csv из dataframe, который будет выглядеть так time, price, vol 178, 310, 10 299, 510, 11 378, 310, 11 мой код дает мне это time, price, vol 1 178 310, 10 2 299, 510, 11 3 378.

Я пытаюсь получить только название команды и удалить записи команды, которые были прикреплены, когда я выскребал таблицу. Я знаю, что могу использовать rstrip(), но я не хочу вводить все записи.

Источник

Очистка данных с помощью Pandas и NumPy

Специалисты по обработке данных тратят много времени на очистку наборов данных и приведение их в форму, с которой они могут работать. Фактически, многие специалисты по данным утверждают, что начальные шаги по получению и очистке данных составляют 80% работы.

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

Содержание

Для своих упражнений мы будем использовать следующие наборы данных:

Вы можете загрузить наборы данных и примеры проверенного кода, которые здесь применяются, из репозитория на GitHub и посмотреть как всё это работает «в живую».

Давайте импортируем необходимые модули и приступим!

Удаление столбцов в DataFrame

Часто вы обнаруживаете, что не все категории данных в наборе данных вам нужны. Например, у вас может быть набор данных, содержащий информацию об учащемся (имя, оценка, стандарт, имена родителей и адрес), но вы хотите сосредоточиться на анализе оценок учащихся.

В этом случае вам не важен адрес или категории имен родителей. Сохранение этих ненужных категорий займет ненужное пространство и, возможно, также замедлит выполнение.

Мы можем удалить эти столбцы следующим образом:

Сначала мы определили список, который содержит имена всех столбцов, которые мы хотим удалить. Затем мы вызываем функцию drop() для нашего объекта, передавая параметр inplace как True и параметр оси как 1, что говорит Pandas об изменениях непосредственно в нашем объекте и что он должен искать значения, которые будут отброшены в столбцах объекта.

В качестве альтернативы мы также могли бы удалить столбцы, передав их напрямую параметру columns вместо того, чтобы отдельно указывать метки, которые нужно удалить, и ось, на которых Pandas должен искать метки:

Этот синтаксис более интуитивно понятен и удобочитаем. То, что мы здесь пытаемся сделать, очевидно.

Если вы заранее знаете, какие столбцы хотите сохранить, другой вариант — передать их аргументу usecols в pd.read_csv.

Изменение индекса фрейма данных

Индекс Pandas расширяет функциональность массивов NumPy, чтобы обеспечить более гибкое нарезание и маркировку. Во многих случаях полезно использовать однозначное идентифицирующее поле данных в качестве индекса.

Например, в наборе данных, использованном в предыдущем разделе, можно ожидать, что, когда библиотекари ищут запись, они могут ввести уникальный идентификатор (значения в столбце Identifier ) для книги:

Давайте заменим существующий индекс этим столбцом, используя set_index :

Технические детали: в отличие от первичных ключей в SQL, индекс Pandas не дает никаких гарантий уникальности, хотя на многих операциях индексирования и слияния заметно ускорение во время выполнения, если это так.

Очистка полей в данных

Пока что мы удалили ненужные столбцы и изменили индекс нашего DataFrame на что-то более разумное. В этом разделе мы очистим определенные столбцы и приведем их к единому формату, чтобы лучше понять набор данных и обеспечить согласованность. В частности, мы будем очищать дату публикации и место публикации. После проверки все типы данных в настоящее время являются объектом dtype, который примерно аналогичен str в собственном Python.

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

Одно из полей, в котором имеет смысл принудительно вводить числовое значение, — это дата публикации, чтобы мы могли выполнять вычисления в будущем:

У конкретной книги может быть только одна дата публикации. Поэтому нам необходимо сделать следующее:

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

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

Давайте посмотрим, что произойдет, когда мы запустим это регулярное выражение в нашем наборе данных:

Дополнительная информация: не знакомы с регулярным выражением? Вы можете изучить приведенное выше выражение на regex101.com и узнать все о регулярных выражениях с помощью RegEx — регулярные выражения в Python

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

Объединение методов str с NumPy для очистки столбцов

Мы будем использовать эти две функции для очистки места публикации, поскольку в этом столбце есть строковые объекты. Вот содержимое столбца:

Мы видим, что для некоторых строк место публикации окружено другой ненужной информацией. Если бы мы посмотрели на большее количество значений, мы бы увидели, что это справедливо только для некоторых строк, место публикации которых — ‘London’ или ‘Oxford’.

Давайте взглянем на две конкретные записи:

Эти две книги были изданы в одном месте, но одна имеет дефис в названии места, а другая — нет.

Чтобы очистить этот столбец за один проход, мы можем использовать str.contains() для получения логической маски.

Чистим колонку следующим образом:

Объединяем их с np.where :

Хотя в этом наборе данных больше грязных данных, мы пока будем обсуждать только эти два столбца.

Давайте посмотрим на первые пять записей, которые выглядят намного четче, чем когда мы начинали:

Примечание: на этом этапе место публикации было бы хорошим кандидатом для преобразования в категориальный dtype, потому что мы можем кодировать довольно небольшой уникальный набор городов с помощью целых чисел. (Использование памяти категорией пропорционально количеству категорий плюс длина данных; объект dtype — это константа, умноженная на длину данных).

Очистка всего набора данных с помощью функции applymap

В определенных ситуациях вы увидите, что «грязь» не локализована в одном столбце, а более разбросана.

Давайте посмотрим на пример. Мы создадим DataFrame из файла «university_towns.txt»:

Мы можем воспользоваться этим шаблоном, создав список (state, city) кортежи и обертывание этого списка в DataFrame:

Мы можем обернуть этот список в DataFrame и установить столбцы как «State» и «RegionName». Pandas возьмет каждый элемент в списке и установит State на левое значение, а RegionName — на правое значение.

Результирующий DataFrame выглядит так:

Мы использовали термин элемент,но что именно мы подразумеваем под этим? Рассмотрим следующий «игрушечный» DataFrame:

В этом примере каждая ячейка («Mock», «Dataset», «Python», «Pandas» и т.д.) является элементом. Следовательно, applymap() применит функцию к каждому из них независимо. Давайте определим эту функцию:

.Applymap() Pandas принимает только один параметр, который является функцией (вызываемой), которая должна применяться к каждому элементу:

Теперь DataFrame стал намного аккуратнее:

Метод applymap() взял каждый элемент из DataFrame, передал его функции, а исходное значение было заменено возвращенным значением. Это так просто!

Переименование столбцов и пропуск строк

Часто наборы данных, с которыми вы будете работать, будут иметь либо имена столбцов, которые непросто понять, либо неважную информацию в первых нескольких и/или последних строках, такую ​​как определения терминов в наборе данных или сноски.

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

Чтобы продемонстрировать, как это сделать, давайте сначала взглянем на первые пять строк набора данных olympics.csv:

Теперь мы прочитаем его в DataFrame Pandas:

Кроме того, если бы мы обратились к источнику этого набора данных, мы бы увидели, что NaN выше действительно должно быть чем-то вроде «Country»? «Summer» должно представлять «Summer Games», 01! должно быть «Gold» и так далее.

Следовательно, нам нужно сделать две вещи:

Эта функция принимает множество необязательных параметров, но в этом случае нам нужен только один ( header ), чтобы удалить 0-ю строку:

Чтобы переименовать столбцы, мы будем использовать метод rename() DataFrame, который позволяет вам изменить метку оси на основе сопоставления (в данном случае dict ).

Начнем с определения словаря, который сопоставляет текущие имена столбцов (как ключи) с более удобными (значениями словаря):

Мы вызываем функцию rename() для нашего объекта:

Установка inplace в True указывает, что наши изменения будут внесены непосредственно в объект. Посмотрим, подтвердится ли это:

Очистка данных Python: обзор и ресурсы

Знание об очистке данных очень важно, потому что это большая часть науки о данных. Теперь у вас есть базовое представление о том, как можно использовать Pandas и NumPy для очистки наборов данных!

Просмотрите ссылки ниже, чтобы найти дополнительные ресурсы, которые помогут вам в вашем путешествии по науке о данных Python:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *