Kā atlasīt datus no pandas DataFrames ar loc[]
Python pandas bibliotēkā DataFrame.loc[] ir īpašība, kas ļauj izvēlēties datus no DataFrame, izmantojot etiķetes. Tas atvieglo konkrētu rindu un kolonnu izvilkšanu no DataFrame.
Kāda ir pandas loc[] sintakse?
loc[] sintakse ir diezgan vienkārša. Viss, kas jums jādara, ir kā parametru nodot izvēlēto kolonnu un rindu nosaukumus:
DataFrame.loc[selection]pythonAr pandas loc[] izvēle galvenokārt tiek veikta, izmantojot marķierus. Tas nozīmē, ka jūsu norādītais parametrs var būt viens marķieris, saraksts vai marķieru fragments. Var izmantot arī booles masīvus.
Kāda ir atšķirība starp loc[] un iloc[]?
Kamēr pandas DataFrame.loc[] atlasa datus, pamatojoties uz etiķetēm, DataFrame.iloc atlasa datus, pamatojoties uz veselo skaitļu pozīcijām. Šeit ir koda piemērs, kas palīdz ilustrēt atšķirības. Vispirms izveidosim pandas DataFrame:
import pandas as pd
# Example DataFrame
data = {'Name': ['Alyssa', 'Brandon', 'Carmen'], 'Age': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)pythonŠādi izskatās DataFrame:
Name Age
0 Alyssa 23
1 Brandon 35
2 Carmen 30Lai izvilktu “Alyssa” no DataFrame, varat izmantot gan pandas loc[], gan iloc[]. Lai gan pieeja atšķiras, rezultāts ir viens un tas pats:
# Using loc and labels to extract Alyssa
print(df.loc[0, 'Name']) # Output: 'Alyssa'
# Using iloc and integers to extract Alysa
print(df.iloc[0, 0]) # Output: 'Alyssa'pythonKā lietot pandas DataFrame.loc[]
Pandas loc[] palīdz izgūt DataFrame apakškopas. Ar loc[] var izgūt vienu rindu vai kolonu, vairākas rindas un kolonnas vai pat piemērot filtrēšanas nosacījumus. Šī elastība padara to piemērotu dažādiem lietošanas gadījumiem.
Vienas rindas atlasīšana
Apskatīsim DataFrame piemēru:
import pandas as pd
data = {
'Name': ['Alyssa', 'Brandon', 'Carmen'],
'Age': [23, 35, 30],
'City': ['Sheffield', 'Glasgow', 'Belfast']
}
df = pd.DataFrame(data)
print(df)pythonŠeit ir redzams, kā izskatās rezultātā iegūtais DataFrame:
Name Age City
0 Alyssa 23 Sheffield
1 Brandon 35 Glasgow
2 Carmen 30 BelfastLai atlasītu datus no rindas, kas satur informāciju par Brandonu (indekss 1), varat izmantot pandas loc[]:
brandon_data = df.loc[1]
print(brandon_data)pythonŠeit ir rezultāts:
Name Brandon
Age 35
City Glasgow
Name: 1, dtype: objectVairāku kolonnu atlase
Jūs varat arī izmantot DataFrame.loc[], lai atlasītu kolonnu apakškopu. Šis kods atlasa kolonnu “Name” un “City”:
name_city = df.loc[:, ['Name', 'City']]
print(name_city)pythonRezultāts ir sākotnējā DataFrame apakškopa:
Name City
0 Alyssa Sheffield
1 Brandon Glasgow
2 Carmen BelfastRindu atlase, pamatojoties uz nosacījumiem
Ar pandas loc[] varat arī atlasīt rindas, kas atbilst konkrētiem kritērijiem. To var izdarīt, izmantojot Boole’a salīdzināšanas operatorus. Piemēram, šeit ir parādīts, kā atlasīt visus indivīdus, kas ir vecāki par 25 gadiem:
older_than_25 = df.loc[df['Age'] > 25]
print(older_than_25)pythonIepriekš minētais kods izveido DataFrame, kas ietver tikai datus par DataFrame indivīdiem, kuri ir vecāki par 25 gadiem:
Name Age City
1 Brandon 35 Glasgow
2 Carmen 30 Belfast