Избор редова оквира података на основу вредности колоне у Питхон-у

Избор редова оквира података на основу вредности колоне у Питхон-у
Python

Коришћење Пандас за филтрирање оквира података према вредностима колоне

Када радите са подацима у Питхон-у, Пандас библиотека нуди моћне алате за манипулацију и анализу података. Један уобичајени задатак је одабир редова из ДатаФраме-а на основу вредности у одређеној колони. Ова операција је слична СКЛ упиту: СЕЛЕЦТ * ФРОМ табле ВХЕРЕ цолумн_наме = соме_валуе.

У овом чланку ћемо истражити како то постићи у Пандас користећи различите методе. Било да филтрирате према једној вредности или више критеријума, Пандас пружа интуитивне и ефикасне начине за руковање таквим операцијама. Уронимо у детаље.

Цомманд Опис
pd.DataFrame() Креира објекат ДатаФраме из речника или других структура података.
df[condition] Филтрира редове ДатаФраме-а на основу услова, враћајући само оне који испуњавају критеријуме.
print() Излази наведену поруку или ДатаФраме на конзолу.
df['column'] == value Креира логички низ који се користи за филтрирање редова у којима колона одговара наведеној вредности.
df['column'] >df['column'] > value Креира логички низ који се користи за филтрирање редова у којима су вредности колоне веће од наведене вредности.
# Comment Користи се за додавање објашњења или напомена унутар кода, који се не извршавају као део скрипте.

Имплементација избора редова ДатаФраме у Пандас

У датим скриптама, кључни задатак је филтрирање редова из ДатаФраме-а на основу специфичних вредности колоне, што је уобичајен захтев у анализи података. Прва скрипта почиње увозом Пандас библиотеке са import pandas as pd. Ово је неопходно јер је Пандас моћна библиотека за манипулацију подацима у Питхон-у. Затим креирамо узорак ДатаФраме користећи pd.DataFrame() са речником који садржи податке за имена, године и градове. Ова структура нам омогућава да лако визуализујемо и манипулишемо табеларним подацима. Кључни део скрипте је где филтрирамо редове користећи df[df['city'] == 'New York']. Ова команда бира све редове у којима је вредност колоне града „Њујорк“. Резултат се чува у променљивој ny_rows, који се затим штампа да прикаже филтрирани ДатаФраме.

Друга скрипта прати сличну структуру, али се фокусира на филтрирање редова на основу нумеричког услова. Након увоза Панда и креирања ДатаФраме-а са колонама производа, цене и количине, скрипта користи df[df['price'] > 150] да филтрира редове где је цена већа од 150. Ова команда производи подскуп оригиналног оквира података који садржи само редове који испуњавају наведени услов. Резултат се чува у expensive_products и одштампан ради провере. Обе скрипте демонстрирају моћ и једноставност Панде за манипулацију подацима. Користећи логичко индексирање, метод где преносимо низ тачних/нетачних вредности да бисмо филтрирали податке, можемо ефикасно одабрати подскупове података на основу различитих услова, што га чини непроцењивим алатом за аналитичаре података и научнике.

Филтрирање редова у оквиру података на основу вредности колоне

Питхон – Коришћење Панда за операције ДатаФраме-а

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

Упит за редове оквира података на основу вредности колоне

Питхон – Напредно филтрирање са Пандама

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

Напредне технике за одабир редова оквира података

Поред основног филтрирања са логичким индексирањем, Пандас нуди напредније технике за избор редова на основу вредности колона. Једна таква метода је query() функција, која вам омогућава да користите синтаксу сличну СКЛ-у за филтрирање редова ДатаФраме-а. На пример, можете користити df.query('age > 25 and city == "New York"') да изаберете редове у којима је старост већа од 25 година и град је Њујорк. Овај метод може учинити ваш код читљивијим, посебно за сложене услове. Поред тога, Пандас пружа loc[] и iloc[] приступници за прецизнији избор редова. Тхе loc[] приступник је заснован на ознакама, што значи да можете филтрирати редове према њиховим ознакама или логичком низу. Насупрот томе, тхе iloc[] приступник је заснован на целобројним позицијама, што вам омогућава да филтрирате редове према њиховим позицијама индекса.

Још једна моћна карактеристика у Пандас-у је могућност филтрирања редова ДатаФраме-а помоћу isin() методом. Овај метод је користан када треба да филтрирате редове на основу листе вредности. На пример, df[df['city'].isin(['New York', 'Los Angeles'])] бира редове у којима је вредност колоне града Њујорк или Лос Анђелес. Штавише, можете повезати више услова користећи & и | оператори за креирање сложенијих филтера. На пример, df[(df['age'] > 25) & (df['city'] == 'New York')] филтрира редове у којима је старост већа од 25 година, а град је Њујорк. Ове напредне технике обезбеђују робустан оквир за филтрирање података, чинећи Пандас свестраним алатом за анализу података и манипулацију.

Уобичајена питања о одабиру редова оквира података у Пандас-у

  1. Како да филтрирам редове у ДатаФраме-у на основу више вредности колона?
  2. Можете користити логичко индексирање са више услова комбинованих коришћењем & и |. На пример: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Која је разлика између loc[] и iloc[]?
  4. loc[] је заснован на етикети, док iloc[] је заснован на целобројним позицијама. Користите loc[] за филтрирање по ознакама и iloc[] за филтрирање према позицијама индекса.
  5. Како могу да користим query() функција за филтрирање редова ДатаФраме-а?
  6. Тхе query() функција вам омогућава да користите синтаксу сличну СКЛ-у. На пример: df.query('age > 25 and city == "New York"').
  7. Могу ли да филтрирам редове на основу листе вредности?
  8. Да, можете користити isin() методом. На пример: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Који је најбољи начин за филтрирање редова на основу подударања низова?
  10. Можете користити str.contains() методом. На пример: df[df['city'].str.contains('New')].
  11. Како да изаберем редове у којима недостају вредности колона?
  12. Можете користити isna() методом. На пример: df[df['age'].isna()].
  13. Како могу да филтрирам редове користећи прилагођену функцију?
  14. Можете користити apply() метода са ламбда функцијом. На пример: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Могу ли да филтрирам редове на основу вредности индекса?
  16. Да, можете користити index.isin() методом. На пример: df[df.index.isin([1, 3, 5])].

Кључне речи за избор реда података оквира података

Избор редова из ДатаФраме-а на основу вредности колона је основна вештина у анализи података са Пандас-ом. Користећи логичко индексирање, loc[], iloc[], query(), и isin() методе омогућавају ефикасно филтрирање података. Савладавање ових техника побољшава вашу способност да ефикасно манипулишете и анализирате скупове података.