Основные функции 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 — это попрактиковаться.

Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы или предложения.

Рекомендации