Коли ви намагаєтеся зрозуміти великий DataFrame в Pandas, вам може знадобитися розбити його на стовпці та рядки. У цьому підручнику ми покажемо найбільш поширені випадки використання розділення стовпців вашого DataFrame.
Ми почнемо з налаштування нашого прикладу DataFrame, що ми зробимо, запустивши наступний код Python у нашому улюбленому середовищі (для простоти я використовую Anaconda і Jupyter Lab).
import pandas as pd # import the pandas library
languages = ({"language": [ "Python", "C-Sharp", "Javascript","PHP"] ,
"avg_difficulty_level": [3, 2, 2, 1],
"avg_salary": [120, 100, 120, 80],
"applications": [10,15,14,20]})
# Now let's convert our dict to a DataFrame
languages = pd.DataFrame.from_dict(languages)
Тепер давайте розглянемо перші рядки нашого Dataframe за допомогою методу head().
languages.head()
Як ви можете бачити, це досить простий DataFrame, який ми будемо використовувати як приклад у цій публікації:
| |
мову |
avg_difficulty_level |
середня_зарплата |
додатків |
| 0 |
Python |
3 |
120 |
10 |
| 1 |
C-Sharp |
2 |
100 |
15 |
| 2 |
Javascript |
2 |
120 |
14 |
| 3 |
PHP |
1 |
80 |
20 |
Фільтрування окремого стовпця
Ми почнемо з найпростішого випадку, який полягає в тому, щоб підмножити один стовпець із нашого набору даних. Виконання такої команди створить об’єкт Series:
За назвою / етикеткою
languages["language"]
Результатом є серія:
0 Python
1 C-Sharp
2 Javascript
3 PHP
Ім'я: мова, dtype: об'єкт
type(languages["language"])
pandas.core.series.Series
За індексом
Наступна команда також поверне серію, що містить перший стовпець
languages.iloc[:,0]
Вибір кількох стовпців
По імені
Передаючи список стовпців, Pandas поверне DataFrame, що містить частину даних.
languages[["language", "applications"]]
| |
мову |
додатків |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
За етикеткою (з loc)
df.loc[:,["language","applications"]]
Результат буде схожим.
За індексом
Тепер давайте отримаємо кілька стовпців за допомогою індексу:
languages.iloc[: ,[0,3]]
| |
мову |
додатків |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
За умовою
У цьому випадку ми просто покажемо стовпці, назва яких відповідає певному виразу. Ми будемо використовувати досить зручний метод фільтрації :
languages.filter(axis = 1, like="avg")
Примітки:
- ми також можемо фільтрувати за певним регулярним виразом (регулярним виразом).
- Ми можемо застосувати параметр axis=0 для фільтрації за певним значенням рядка.
Відфільтруйте певні рядки за умовою
Ось досить простий спосіб підмножити DataFrame відповідно до значення рядка:
languages[(languages["applications"] > 15)]
Маємо лише один результат:
languages[(languages["applications"] > 15)]
| |
мову |
avg_difficulty_level |
середня_зарплата |
додатків |
| 3 |
PHP |
1 |
80 |
20 |