Välja DataFrame-rader baserat på kolumnvärden i Python

Python

Använda pandor för att filtrera dataramar efter kolumnvärden

När du arbetar med data i Python erbjuder Pandas-biblioteket kraftfulla verktyg för datamanipulation och analys. En vanlig uppgift är att välja rader från en DataFrame baserat på värdena i en specifik kolumn. Denna operation är besläktad med SQL-frågan: SELECT * FROM table WHERE kolumnnamn = något_värde.

I den här artikeln kommer vi att utforska hur man uppnår detta i Pandas med olika metoder. Oavsett om du filtrerar efter ett enda värde eller flera kriterier, erbjuder Pandas intuitiva och effektiva sätt att hantera sådana operationer. Låt oss dyka in i detaljerna.

Kommando Beskrivning
pd.DataFrame() Skapar ett DataFrame-objekt från en ordbok eller andra datastrukturer.
df[condition] Filtrerar DataFrame-raderna baserat på ett villkor och returnerar endast de som uppfyller kriterierna.
print() Matar ut det angivna meddelandet eller DataFrame till konsolen.
df['column'] == value Skapar en boolesk serie som används för att filtrera rader där kolumnen matchar det angivna värdet.
df['column'] >df['column'] > value Skapar en boolesk serie som används för att filtrera rader där kolumnvärdena är större än det angivna värdet.
# Comment Används för att lägga till förklaringar eller anteckningar i koden, som inte exekveras som en del av skriptet.

Implementera DataFrame Row Selection i Pandas

I de tillhandahållna skripten är nyckeluppgiften att filtrera rader från en DataFrame baserat på specifika kolumnvärden, ett vanligt krav vid dataanalys. Det första skriptet börjar med att importera Pandas-biblioteket med . Detta är viktigt eftersom Pandas är ett kraftfullt datamanipuleringsbibliotek i Python. Därefter skapar vi ett exempel på DataFrame med hjälp av med en ordbok som innehåller data för namn, åldrar och städer. Denna struktur gör att vi enkelt kan visualisera och manipulera tabelldata. Den avgörande delen av skriptet är var vi filtrerar rader med hjälp av . Det här kommandot väljer alla rader där stadskolumnens värde är 'New York'. Resultatet lagras i variabeln ny_rows, som sedan skrivs ut för att visa den filtrerade DataFrame.

Det andra skriptet följer en liknande struktur men fokuserar på att filtrera rader baserat på ett numeriskt villkor. Efter att ha importerat Pandas och skapat en DataFrame med produkt-, pris- och kvantitetskolumner, använder skriptet för att filtrera rader där priset är högre än 150. Detta kommando producerar en delmängd av den ursprungliga DataFrame som endast innehåller de rader som uppfyller det angivna villkoret. Resultatet lagras i och skrivs ut för verifiering. Båda skripten visar kraften och enkelheten hos Pandas för datamanipulation. Genom att använda boolesk indexering, en metod där vi skickar en serie sanna/falska värden för att filtrera data, kan vi effektivt välja delmängder av data baserat på olika förhållanden, vilket gör det till ett ovärderligt verktyg för dataanalytiker och forskare.

Filtrera rader i en dataram baserat på kolumnvärden

Python - Använda Pandas för DataFrame Operations

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

Fråga i DataFrame-rader baserat på kolumnvärden

Python - Avancerad filtrering med pandor

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

Avancerade tekniker för att välja DataFrame-rader

Förutom grundläggande filtrering med boolesk indexering erbjuder Pandas mer avancerade tekniker för att välja rader baserat på kolumnvärden. En sådan metod är funktion, som låter dig använda SQL-liknande syntax för att filtrera DataFrame-rader. Du kan till exempel använda för att välja rader där åldern är högre än 25 och staden är New York. Denna metod kan göra din kod mer läsbar, särskilt för komplexa förhållanden. Dessutom tillhandahåller Pandas och iloc[] tillbehör för mer exakt radval. De accessor är etikettbaserad, vilket innebär att du kan filtrera rader efter deras etiketter eller en boolesk array. Däremot accessor är heltalspositionsbaserad, vilket gör att du kan filtrera rader efter deras indexpositioner.

En annan kraftfull funktion i Pandas är möjligheten att filtrera DataFrame-rader med hjälp av metod. Den här metoden är användbar när du behöver filtrera rader baserat på en lista med värden. Till exempel, väljer rader där stadskolumnen är antingen New York eller Los Angeles. Dessutom kan du kedja flera villkor med hjälp av och | operatörer för att skapa mer komplexa filter. Till exempel, filtrerar rader där åldern är äldre än 25 och staden är New York. Dessa avancerade tekniker ger ett robust ramverk för datafiltrering, vilket gör Pandas till ett mångsidigt verktyg för dataanalys och manipulation.

  1. Hur filtrerar jag rader i en DataFrame baserat på värden för flera kolumner?
  2. Du kan använda boolesk indexering med flera villkor kombinerat med och . Till exempel: .
  3. Vad är skillnaden mellan och ?
  4. är etikettbaserad, medan är heltalspositionsbaserad. Använda sig av för filtrering efter etiketter och iloc[] för filtrering efter indexpositioner.
  5. Hur kan jag använda funktion för att filtrera DataFrame-rader?
  6. De funktionen låter dig använda SQL-liknande syntax. Till exempel: .
  7. Kan jag filtrera rader baserat på en lista med värden?
  8. Ja, du kan använda metod. Till exempel: .
  9. Vad är det bästa sättet att filtrera rader baserat på strängmatchning?
  10. Du kan använda metod. Till exempel: .
  11. Hur väljer jag rader där kolumnvärden saknas?
  12. Du kan använda metod. Till exempel: .
  13. Hur kan jag filtrera rader med en anpassad funktion?
  14. Du kan använda metod med lambdafunktion. Till exempel: .
  15. Kan jag filtrera rader baserat på indexvärden?
  16. Ja, du kan använda metod. Till exempel: .

Att välja rader från en DataFrame baserat på kolumnvärden är en grundläggande färdighet i dataanalys med Pandas. Använder boolesk indexering, , , , och isin() metoder möjliggör effektiv datafiltrering. Att behärska dessa tekniker förbättrar din förmåga att manipulera och analysera datauppsättningar effektivt.