Filtrat de files en Pandas DataFrames
Pandas és una biblioteca potent en Python per a la manipulació i anàlisi de dades. Una tasca habitual és seleccionar files d'un DataFrame basant-se en valors de columna, de manera similar a la taula SELECT * FROM d'SQL WHERE nom_columna = algun_valor.
Aquesta guia us guiarà a través de diversos mètodes per aconseguir-ho a Pandas, de manera que és fàcil filtrar les vostres dades de manera eficient. Tant si sou un usuari principiant com si sou experimentat, aquests consells milloraran les vostres habilitats de maneig de dades.
Comandament | Descripció |
---|---|
pd.DataFrame(data) | Crea un DataFrame a partir d'un diccionari de dades. |
df[column_name] | Accedeix a una columna del DataFrame per nom. |
df[condition] | Filtra el DataFrame en funció d'una condició aplicada a una columna. |
print(selected_rows) | Imprimeix el DataFrame o un subconjunt d'aquest a la consola. |
df[df['Age'] >df[df['Age'] > 25] | Selecciona les files on els valors de la columna "Edat" són superiors a 25. |
df[df['City'] == 'Chicago'] | Selecciona les files on els valors de la columna "Ciutat" són iguals a "Chicago". |
Entendre la selecció de files de DataFrame a Pandas
Els scripts proporcionats mostren com seleccionar files d'un DataFrame en funció dels valors de les columnes mitjançant la biblioteca Pandas a Python. El primer script comença important la biblioteca Pandas amb el import pandas as pd comandament. A continuació, crea un DataFrame de mostra mitjançant un diccionari de dades, que es converteix en un DataFrame amb el pd.DataFrame(data) comandament. A continuació, l'script il·lustra dos mètodes per a la selecció de files: seleccionar files on el valor de la columna "Edat" sigui superior a 25 mitjançant df[df['Age'] > 25], i seleccionant les files on el valor de la columna "Ciutat" és "Chicago". df[df['City'] == 'Chicago']. Aquests marcs de dades filtrats s'imprimeixen amb el print() funció per mostrar les files seleccionades.
El segon script segueix una estructura similar però utilitza dades i criteris de selecció diferents. Crea un DataFrame amb informació del producte, incloses les columnes "Producte", "Preu" i "Estoc". Es seleccionen files on el "Preu" és inferior o igual a 200 amb df[df['Price'] <= 200], i on l''Estoc' és més de 40 utilitzant df[df['Stock'] > 40]. L'objectiu d'aquests scripts és mostrar com filtrar les files de DataFrame en funció de condicions específiques, de manera similar a com utilitzaríeu una consulta SQL per seleccionar files d'una taula en funció del valor d'una columna. En comprendre i aplicar aquestes ordres, podeu manipular i analitzar de manera eficient les dades dels vostres DataFrames.
Selecció de files en un DataFrame mitjançant valors de columna a Pandas
Python amb Pandas Library
# 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)
Filtrat de dades en un DataFrame en funció dels criteris de la columna
Python amb Pandas Library
# 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)
Tècniques avançades per seleccionar files de DataFrame a Pandas
A més del filtratge bàsic mitjançant la indexació booleana, Pandas ofereix tècniques avançades per seleccionar files en funció dels valors de les columnes. Un mètode potent és utilitzar el query() funció, que us permet filtrar files amb una expressió de consulta, fent que la sintaxi sigui més neta i sovint més intuïtiva. Per exemple, en comptes d'utilitzar df[df['Age'] > 25], pots escriure df.query('Age > 25'). Aquest mètode és especialment útil quan es tracta de condicions més complexes o quan els noms de les columnes contenen espais. A més, el isin() La funció és beneficiosa quan voleu filtrar files en funció d'una llista de valors. Per exemple, per seleccionar files on el valor de la columna "Ciutat" sigui "Chicago" o "Nova York", podeu utilitzar df[df['City'].isin(['Chicago', 'New York'])].
Una altra tècnica implica el loc i iloc indexadors. El loc L'indexador està basat en etiquetes, cosa que us permet seleccionar files en funció de les etiquetes de les files i els noms de les columnes, mentre que iloc es basa en la ubicació de nombres enters, permetent la selecció per números de fila i columna. Aquesta flexibilitat és especialment útil per seleccionar files en funció d'una condició aplicada a una columna diferent. Per exemple, df.loc[df['Age'] > 25, 'Name'] retornarà els noms de les persones majors de 25 anys. Aquests mètodes amplien el vostre conjunt d'eines per gestionar i analitzar dades de manera eficient a Pandas, oferint un codi més llegible i fàcil de mantenir.
Preguntes i respostes habituals sobre la selecció de files de DataFrame
- Com puc seleccionar files en funció de diverses condicions?
- Podeu utilitzar el query() funcionar o combinar condicions amb operadors lògics com & i |. Per exemple, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- Puc filtrar files segons una llista de valors?
- Sí, utilitza el isin() funció. Per exemple, df[df['City'].isin(['Chicago', 'New York'])].
- Quina és la diferència entre loc i iloc?
- loc està basat en etiquetes, mentre que iloc està basat en la ubicació de nombres enters. Ús loc amb etiquetes de fila/columna i iloc amb índexs de fila/columna.
- Com puc seleccionar columnes específiques mentre filtre files?
- Pots fer servir loc. Per exemple, df.loc[df['Age'] > 25, ['Name', 'City']].
- Com puc gestionar els valors que falten en seleccionar files?
- Utilitzar el dropna() funció per eliminar files amb valors que falten, o bé fillna() per substituir-los per un valor especificat.
- Puc utilitzar expressions regulars per filtrar files?
- Sí, el str.contains() funció amb el regex=True El paràmetre us permet filtrar files segons patrons d'expressió regular. Per exemple, df[df['Name'].str.contains('^A', regex=True)].
- Com filtre les files segons l'índex?
- Pots fer servir loc amb el nom de l'índex. Per exemple, df.loc[df.index == 'some_index'].
- Què passa si els noms de les meves columnes contenen espais o caràcters especials?
- Utilitzar el query() funció que pot gestionar aquests noms de columnes amb backticks. Per exemple, df.query('`column name` == value').
Consideracions finals sobre les tècniques de selecció de files de DataFrame
La selecció de files d'un DataFrame en funció dels valors de les columnes a Pandas és una habilitat crucial per a la manipulació de dades. Els diferents mètodes tractats, inclosa la indexació booleana, query(), isin(), i indexació basada en etiquetes i ubicacions enteres amb loc i iloc, proporcionen eines potents per filtrar dades de manera eficient. El domini d'aquestes tècniques permet una millor anàlisi de dades i un codi més net i més fàcil de mantenir.