Филтрирање редова у Пандас ДатаФрамес
Пандас је моћна библиотека у Питхон-у за манипулацију подацима и анализу. Уобичајени задатак је одабир редова из ДатаФраме-а на основу вредности колоне, слично СКЛ-овој табели СЕЛЕЦТ * ФРОМ ВХЕРЕ име_колоне = нека_вредност.
Овај водич ће вас провести кроз различите методе да то постигнете у Пандас-у, што олакшава ефикасно филтрирање података. Било да сте почетник или искусан корисник, ови савети ће побољшати ваше вештине руковања подацима.
Цомманд | Опис |
---|---|
pd.DataFrame(data) | Креира ДатаФраме из речника података. |
df[column_name] | Приступа колони у оквиру ДатаФраме по имену. |
df[condition] | Филтрира ДатаФраме на основу услова примењеног на колону. |
print(selected_rows) | Штампа ДатаФраме или његов подскуп на конзолу. |
df[df['Age'] >df[df['Age'] > 25] | Бира редове у којима су вредности колоне „Старост“ веће од 25. |
df[df['City'] == 'Chicago'] | Бира редове у којима су вредности колоне „Град“ једнаке „Чикаго“. |
Разумевање избора редова ДатаФраме у Пандас
Достављене скрипте показују како да изаберете редове из ДатаФраме-а на основу вредности колона користећи Пандас библиотеку у Питхон-у. Прва скрипта почиње увозом Пандас библиотеке са import pandas as pd команда. Затим креира узорак ДатаФраме користећи речник података, који се конвертује у ДатаФраме помоћу pd.DataFrame(data) команда. Скрипта затим илуструје две методе за избор редова: бирање редова у којима је вредност колоне „Старост“ већа од 25 помоћу df[df['Age'] > 25], и бирање редова у којима је вредност колоне „Град“ „Чикаго“ користећи df[df['City'] == 'Chicago']. Ови филтрирани оквири података се штампају помоћу print() функција за приказ изабраних редова.
Друга скрипта има сличну структуру, али користи различите податке и критеријуме одабира. Он креира ДатаФраме са информацијама о производу, укључујући колоне „Производ“, „Цена“ и „Стоцк“. Изабрани су редови где је 'Цена' мања или једнака 200 са df[df['Price'] <= 200], и где је 'Стоцк' више од 40 коришћења df[df['Stock'] > 40]. Сврха ових скрипти је да покажу како филтрирати редове ДатаФраме-а на основу специфичних услова, слично као што бисте користили СКЛ упит да изаберете редове из табеле на основу вредности колоне. Разумевањем и применом ових команди, можете ефикасно да манипулишете и анализирате податке у вашим оквирима података.
Избор редова у оквиру података помоћу вредности колона у Пандас-у
Питхон са Пандас библиотеком
# Importing the necessary library
import pandas as pd
# Creating a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [24, 27, 22, 32, 29],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)
# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)
# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)
Филтрирање података у оквиру података на основу критеријума колоне
Питхон са Пандас библиотеком
# Importing pandas library
import pandas as pd
# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
'Price': [100, 150, 200, 250, 300],
'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)
# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)
# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)
Напредне технике за одабир редова оквира података у Пандас
Поред основног филтрирања помоћу логичког индексирања, Пандас нуди напредне технике за избор редова на основу вредности колона. Једна моћна метода је коришћење query() функција, која вам омогућава да филтрирате редове са изразом упита, чинећи синтаксу чишћом и често интуитивнијом. На пример, уместо коришћења df[df['Age'] > 25], можете написати df.query('Age > 25'). Овај метод је посебно користан када се ради о сложенијим условима или када називи колона садрже размаке. Поред тога, тхе isin() функција је корисна када желите да филтрирате редове на основу листе вредности. На пример, да бисте изабрали редове у којима је вредност колоне „Град“ или „Чикаго“ или „Њујорк“, можете да користите df[df['City'].isin(['Chicago', 'New York'])].
Друга техника укључује loc и iloc индексери. Тхе loc Индексер је заснован на ознакама, омогућавајући вам да изаберете редове на основу ознака редова и назива колона, док iloc је базиран на целобројним локацијама, што омогућава избор према бројевима редова и колона. Ова флексибилност је посебно корисна за избор редова на основу услова примењеног на другу колону. На пример, df.loc[df['Age'] > 25, 'Name'] ће вратити имена појединаца старијих од 25 година. Ове методе проширују ваш комплет алата за ефикасно руковање и анализу података у Пандас-у, нудећи читљивији и одрживији код.
Уобичајена питања и одговори о одабиру редова оквира података
- Како могу да изаберем редове на основу више услова?
- Можете користити query() функционишу или комбинују услове са логичким операторима попут & и |. На пример, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- Могу ли да филтрирам редове на основу листе вредности?
- Да, користите isin() функција. На пример, df[df['City'].isin(['Chicago', 'New York'])].
- Која је разлика између loc и iloc?
- loc је заснован на етикети, док iloc је заснован на целобројним локацијама. Користите loc са ознакама редова/колона и iloc са индексима реда/колоне.
- Како могу да изаберем одређене колоне док филтрирам редове?
- Можете користити loc. На пример, df.loc[df['Age'] > 25, ['Name', 'City']].
- Како да рукујем вредностима које недостају када бирам редове?
- Користити dropna() функција за уклањање редова са недостајућим вредностима, или fillna() да их замени одређеном вредношћу.
- Могу ли да користим регуларне изразе за филтрирање редова?
- Да, str.contains() функција са regex=True параметар вам омогућава да филтрирате редове на основу образаца регуларних израза. На пример, df[df['Name'].str.contains('^A', regex=True)].
- Како да филтрирам редове на основу индекса?
- Можете користити loc са именом индекса. На пример, df.loc[df.index == 'some_index'].
- Шта ако називи мојих колона садрже размаке или специјалне знакове?
- Користити query() функција која може да рукује таквим именима колона са позадинским квачицама. На пример, df.query('`column name` == value').
Завршна размишљања о техникама одабира редова оквира података
Бирање редова из ДатаФраме-а на основу вредности колона у Пандас-у је кључна вештина за манипулацију подацима. Различите методе о којима се расправља, укључујући логичко индексирање, query(), isin(), и индексирање засновано на ознакама и целобројним локацијама са loc и iloc, пружају моћне алате за ефикасно филтрирање података. Овладавање овим техникама омогућава бољу анализу података и чистији код који се може одржавати.