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 :).