10 основни трика, за да улесните живота на вашите панди

Pandas е мощен инструмент за анализ и манипулиране на данни с отворен код, изграден върху езика за програмиране Python. В тази статия ще покажа 10 трика по отношение на pandas DataFrame, за да направя определени практики за програмиране малко по-лесни.

Разбира се, преди да можем да използваме pandas, трябва да го импортираме, като използваме следната команда:

import pandas as pd

1. Изберете множество редове и колони с помощта на .loc

countries = pd.DataFrame({
'country': ['United States', 'The Netherlands', 'Spain', 'Mexico', 'Australia'],
'capital': ['Washington D.C.', 'Amsterdam', 'Madrid', 'Mexico City', 'Canberra'],
'continent': ['North America', 'Europe', 'Europe', 'North America', 'Australia'],
'language': ['English', 'Dutch', 'Spanish', 'Spanish', 'English']})

С помощта на оператора loc можем да избираме подмножества от редове и колони въз основа на техния индексен етикет и име на колона. По-долу са някои примери за това как да използвате оператора loc в DataFrame „страни“:

countries.loc[:, 'country':'continent']

countries.loc[0:2, 'country':'continent']

countries.loc[[0, 4], ['country', 'language']]

2. Филтрирайте DataFrames по категория

В много случаи може да искаме да разгледаме само точките от данни, които са включени в една конкретна категория или понякога в селекция от категории. За една категория можем да направим това с помощта на оператора ==. За множество категории обаче трябва да използваме функцията isin:

countries[countries.continent == 'Europe']

countries[countries.language.isin(['Dutch', 'English'])]

3. Филтрирайте DataFrames чрез изключване на категории

За разлика от филтрирането по категория, може да искаме да филтрираме нашия DataFrame, като изключим определени категории. Правим това, като използваме знака ~ (тилда), който е операторът за допълнение. Примерна употреба:

countries[~countries.continent.isin(['Europe'])]

countries[~countries.language.isin(['Dutch', 'English'])]

4. Преименувайте колони

Може да искате да промените името на определени колони, защото напр. името е неправилно или непълно. Например, може да искаме да променим името на колоната „capital“ на „capital_city“ и „language“ на „most_spoken_language“. Можем да направим това по следния начин:

countries.rename({'capital': 'capital_city', 'language': 'most_spoken_language'}, axis='columns')

Като алтернатива можем да използваме:

countries.columns = ['country', 'capital_city', 'continent', 'most_spoken_language']

5. Обратен ред

За да обърнем реда на редовете, използваме оператора loc. Това работи по следния начин:

countries.loc[::-1]

Имайте предвид обаче, че сега индексите все още следват предишния ред. Трябва да използваме функцията reset_index, за да нулираме индексите:

countries.loc[::-1].reset_index(drop=True)

6. Обратен ред на колоните

Обръщането на реда на колоните става по подобен начин както при редовете:

countries.loc[:, ::-1]

7. Разделете DataFrame на две произволни подгрупи

В някои случаи искаме да разделим DataFrame на две произволни подгрупи. За целта използваме функцията sample. Например, когато създаваме обучителен и тестов набор от целия набор от данни, трябва да създадем две произволни подмножества. По-долу показваме как да използвате функцията sample:

countries_1 = countries.sample(frac=0.6, random_state=999)
countries_2 = countries.drop(countries_1.index)

8. Създайте фиктивни променливи

students = pd.DataFrame({
'name': ['Ben', 'Tina', 'John', 'Eric'],
'gender': ['male', 'female', 'male', 'male']})

Може да искаме да конвертираме категориални променливи във фиктивни/индикаторни променливи. Можем да направим това, като използваме функцията get_dummies:

pd.get_dummies(students)

За да се отървем от излишните колони, трябва да добавим drop_first=True:

pd.get_dummies(students, drop_first=True)

9. Проверете равенството на колоните

Когато целта е да се провери равенството на две различни колони, човек може първо да си помисли за оператора ==, тъй като той се използва най-вече, когато се занимаваме с проверка на условия за равенство. Този оператор обаче не обработва правилно NaN стойностите, така че тук използваме функциите equals. Това става по следния начин:

df = pd.DataFrame({'col_1': [1, 0], 'col_2': [0, 1], 'col_3': [1, 0]})

df['col_1'].equals(df['col_2'])

››› Невярно

df['col_1'].equals(df['col_3'])

>>> Вярно

10. Свържете DataFrames

Може да искаме да комбинираме две DataFrame в една DataFrame, която съдържа всички точки от данни. Това може да се постигне с помощта на функцията concat:

df_1 = pd.DataFrame({'col_1': [6, 7, 8], 'col_2': [1, 2, 3], 'col_3': [5, 6, 7]})

pd.concat([df, df_1]).reset_index(drop=True)

Благодаря за четенето!

Надявам се тази статия да ви е помогнала по някакъв начин и ви желая успех в следващия ви проект, когато използвате Pandas :).