Основные функции Pandas для работы с данными — чтение, запись и управление данными
Pandas — это быстрый, мощный, гибкий и простой в использовании инструмент для анализа и обработки данных с открытым исходным кодом, созданный на основе языка программирования Python. Освоение Pandas поднимет ваши навыки анализа на новый уровень, а знание лучших практик сэкономит вам много времени и энергии.
В этой статье мы рассмотрим библиотеку Pandas и способы ее использования для обработки различных типов данных, с которыми вы можете столкнуться во время анализа. К концу руководства вы будете более свободно использовать функции Pandas.
Ссылки на данные, используемые в этой статье:
Чтобы прочитать данные, вам просто нужно вставить функцию in pd.read_csv()
:
Таблица содержания
1. Как прочитать/записать файл табличных данных с помощью Pandas?
2. Как выбрать серию pandas из DataFrame?
3. Как переименовать столбцы в кадре данных pandas?
4. Как удалить столбцы из Pandas DataFrames?
5. Как сортировать кадры или серии данных Pandas?
6. Как фильтровать строки Pandas DataFrames по значению столбца?
7. Как использовать строковые методы в пандах?
8. Как изменить тип данных серии pandas?
9. Когда мне следует использовать «groupby в пандах?»
10. Как обрабатывать пропущенные значения в pandas?
11. Что мне нужно знать об индексе Pandas?
12. Как выбрать несколько строк и столбцов из кадра данных pandas?
13. Как работать с датами и временем в пандах?
14. Как найти и удалить повторяющиеся строки в пандах?
15. Как применить функцию к серии pandas или DataFrame?
1. Как читать/записывать файл табличных данных с помощью Pandas?
pandas.read_csv()
— лучший и простой способ прочитать файл csv
. Он имеет множество параметров, которые удовлетворяют большинству случаев. Чтобы прочитать только нужные нам столбцы, передайте список имен столбцов, которые вы хотите usecols
. Мы также можем указать количество строк, просто передав число в nrows
.
2. Как выбрать серию Pandas из DataFrame?
Мы можем выбрать серию Pandas, обратившись непосредственно к столбцу, например: df[‘City’]
другой способ - получить доступ к столбцу как к свойству, но в этом случае имя столбца должно соответствовать условиям именования переменных (без пробела, начинается с буквы , …).
City Shape Reported State 0 Ithaca TRIANGLE NY 1 Willingboro OTHER NJ 2 Holyoke OVAL CO 3 Abilene DISK KS 4 New York Worlds Fair LIGHT NY 0 Ithaca 1 Willingboro 2 Holyoke 3 Abilene 4 New York Worlds Fair Name: City, dtype: object
3. Как переименовать столбцы в Pandas DataFrame?
Один из способов переименования столбцов в Pandas DataFrame
— это использование функции rename()
. Этот метод очень полезен, когда нам нужно переименовать некоторые выбранные столбцы, потому что нам нужно указать информацию только для тех столбцов, которые нужно переименовать.
Index(['City', 'Colors Reported', 'Shape Reported', 'State', 'Time', 'Location'], dtype='object') Index(['City', 'Colors_Reported', 'Shape_Reported', 'State', 'Time', 'Location'], dtype='object') Index(['city', 'colors reported', 'shape reported', 'state', 'time', 'location'], dtype='object') Index(['city', 'colors_reported', 'shape_reported', 'state', 'time', 'location'], dtype='object')
Столбцы также можно переименовать, напрямую назначив список, содержащий новые имена, атрибуту columns
объекта DataFrame
, для которого мы хотим переименовать столбцы. Недостатком этого метода является то, что нам нужно указать новые имена для всех столбцов, даже если мы хотим переименовать только некоторые столбцы.
4. Как удалить столбцы из Pandas DataFrames?
Удалить один или несколько столбцов из DataFrame
можно несколькими способами. Самый распространенный в методе .drop()
. Используя его, мы можем удалить несколько столбцов или строк.
Index(['City', 'Colors Reported', 'Shape Reported', 'State', 'Time', 'Location'], dtype='object') Index(['City', 'Shape Reported', 'State', 'Time', 'Location'], dtype='object') Index(['Shape Reported', 'State', 'Time'], dtype='object')
5. Как сортировать кадры или серии данных Pandas?
Для сортировки Pandas DataFrame мы используем метод .sort_values()
. Он может сортировать значения в порядке возрастания или убывания.
star_rating title duration 0 9.3 The Shawshank Redemption 142 1 9.2 The Godfather 175 2 9.1 The Godfather: Part II 200 3 9.0 The Dark Knight 152 4 8.9 Pulp Fiction 154 star_rating title duration 941 7.4 A Bridge Too Far 175 938 7.4 Alice in Wonderland 75 975 7.4 Back to the Future Part III 118 933 7.4 Beetlejuice 92 972 7.4 Blue Valentine 112
Мы можем сортировать по нескольким критериям, передавая список столбцов, по которым вы хотите отсортировать.
6. Как отфильтровать строки Pandas DataFrames по значению столбца?
Фильтрация — это обычная операция при анализе данных, и Pandas предоставляет множество способов фильтрации точек данных. Здесь мы использовали: логические операторы и множественные логические операторы. Есть много других методов фильтрации, таких как: .isin()
, .query()
…
Чтобы применить фильтрацию по нескольким критериям, используйте «&
», «|
» вместо «and
», «or
». Если у нас есть более длинное условие, подобное этому, мы можем использовать метод «isin
».
7. Как использовать строковые методы в пандах?
Методы string в Index особенно полезны для очистки или преобразования столбцов DataFrame.
0 CHIPS AND FRESH TOMATO SALSA 1 IZZE 2 NANTUCKET NECTAR 3 CHIPS AND TOMATILLO-GREEN CHILI SALSA 4 CHICKEN BOWL Name: item_name, dtype: object 0 chips and fresh tomato salsa 1 izze 2 nantucket nectar 3 chips and tomatillo-green chili salsa 4 chicken bowl Name: item_name, dtype: object 0 False 1 False 2 False 3 False 4 False Name: item_name, dtype: bool
8. Как изменить тип данных серии pandas?
Чтобы проверить типы ваших данных, вы можете использовать .dtypes
, и он вернет серию столбцов pandas, связанных с dtype
. Самый простой способ преобразовать столбец данных pandas в другой тип — использовать astype()
.
order_id int64 quantity int64 item_name object choice_description object item_price object dtype: object dtype('float64')
9. Когда я должен использовать «groupby» в пандах?
«groupby()
»: сгруппируйте DataFrame
или Series
с помощью картографа или по Series
столбцам. Операция groupby
включает некоторую комбинацию разделения объекта, применения функции и объединения результатов. Это можно использовать для группировки больших объемов данных и выполнения вычислительных операций с этими группами.
genre Action 126.485294 Adventure 134.840000 Animation 96.596774 Biography 131.844156 Comedy 107.602564 Crime 122.298387 Drama 126.539568 Family 107.500000 Fantasy 112.000000 Film-Noir 97.333333 History 66.000000 Horror 102.517241 Mystery 115.625000 Sci-Fi 109.000000 Thriller 114.200000 Western 136.666667 Name: duration, dtype: float64 count mean max min genre Action 136 126.485294 205 80 Adventure 75 134.840000 224 89 Animation 62 96.596774 134 75 Biography 77 131.844156 202 85 Comedy 156 107.602564 187 68 Crime 124 122.298387 229 67 Drama 278 126.539568 242 64 Family 2 107.500000 115 100 Fantasy 1 112.000000 112 112 Film-Noir 3 97.333333 111 88 History 1 66.000000 66 66 Horror 29 102.517241 146 70 Mystery 16 115.625000 160 69 Sci-Fi 5 109.000000 132 91 Thriller 5 114.200000 120 107 Western 9 136.666667 175 85
Несколько функций агрегации могут применяться одновременно.
10. Как обрабатывать отсутствующие значения в пандах?
Отсутствующие данные — очень большая проблема в реальных сценариях. В Pandas отсутствующие данные представлены двумя значениями: NaN
или None
. Panas имеет несколько полезных функций для обнаружения, удаления и замены нулевых значений в Pandas DataFrame: .isna()
используется для поиска NaN
, .dropna()
используется для удаления NaN
и .fillna()
для заполнения NaN
определенным значением.
(18241, 6) City 25 Colors Reported 15359 Shape Reported 2644 State 0 Time 0 Location 25 dtype: int64 (2486, 6) (2486, 6) (18237, 6) 2644 0 VARIOUS 2977 LIGHT 2803 DISK 2122 TRIANGLE 1889 OTHER 1402 Name: Shape Reported, dtype: int64
11. Что мне нужно знать об индексе Pandas?
В табличных данных обычно используется индекс в диапазоне от 0
до len(data)
. Для конкретных случаев (например, данных временных рядов) нам нужно изменить индекс на что-то более значимое. Чтобы установить индекс, мы просто передаем столбец в .set_index()
.
Int64Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18240], dtype='int64', length=18241) Index([ 'Ithaca , NY', 'Willingboro , NJ', 'Holyoke , CO', 'Abilene , KS', 'New York Worlds Fair , NY', 'Valley City , ND', 'Crater Lake , CA', 'Alma , MI', 'Eklutna , AK', 'Hubbard , OR', ... 'Pismo Beach , CA', 'Lodi , WI', 'Anchorage , AK', 'Capitola , CA', 'Fountain Hills , AZ', 'Grant Park , IL', 'Spirit Lake , IA', 'Eagle River , WI', 'Eagle River , WI', 'Ybor , FL'], dtype='object', name='Location', length=18241)
12. Как выбрать несколько строк и столбцов из кадра данных pandas?
Pandas построен на основе NumPy, поэтому он пытается следовать его соглашениям о нарезке. в то время как «iloc
» работает с числами, он построен как массив NumPy. это не относится к «loc
», который нарезает другие типы.
City Holyoke Shape Reported OVAL State CO Name: 2, dtype: object City Shape Reported State 0 Ithaca TRIANGLE NY 1 Willingboro OTHER NJ 2 Holyoke OVAL CO City State 0 Ithaca NY 1 Willingboro NJ 2 Holyoke CO
13. Как мне работать с датами и временем в пандах?
DateTime
— это набор дат и времени в формате «yyyy-mm-dd HH:MM:SS
», где yyyy-mm-dd
обозначает дату, а HH:MM:SS
— время. Наличие наших дат в виде объектов datetime64
позволит нам получить доступ к большому количеству информации о дате и времени через .dt
API.
.to_datetime()
преобразует строку, представляющую наши данные, в объект datetime64[ns]
.
0 1930-06-01 22:00:00 1 1930-06-30 20:00:00 2 1931-02-15 14:00:00 3 1931-06-01 13:00:00 4 1933-04-18 19:00:00 Name: Time, dtype: datetime64[ns] 0 22 1 20 2 14 3 13 4 19 Name: Time, dtype: int64 0 Sunday 1 Monday 2 Sunday 3 Monday 4 Tuesday Name: Time, dtype: object
14. Как найти и удалить повторяющиеся строки в пандах?
Важной частью анализа данных является анализ повторяющихся значений и их удаление. Метод Pandas duplicated()
помогает анализировать только повторяющиеся значения. Он возвращает логический ряд, который равен True
только для уникальных элементов.
(943, 4) 148 7 (936, 4)
15. Как применить функцию к серии pandas или DataFrame?
Pandas.apply
позволяют пользователям передавать функцию и применять ее к каждому отдельному значению серии Pandas.
age gender occupation zip_code user_id 1 24 M technician 85711 2 53 F other 94043 3 23 M writer 32067 4 24 M technician 43537 5 33 F other 15213 user_id 1 1 2 0 3 1 4 1 5 0 Name: gender, dtype: int64 Man 889 Child 54 Name: age, dtype: int64
Заключение
Освоение Pandas поднимет ваши навыки анализа на новый уровень, а знание лучших практик сэкономит вам много времени и энергии. В этой статье мы рассмотрели:
- 15 практических рецептов, чтобы быстро начать использовать Pandas. Все они полезны и пригодятся в конкретных случаях.
- Pandas — это мощная библиотека как для анализа данных, так и для манипулирования ими. Он предоставляет множество функций и методов для обработки данных в табличной форме. Как и в случае с любым другим инструментом, лучший способ изучить Pandas — это попрактиковаться.
Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы или предложения.