Introduction to Pandas
Chapter 4: Accessing DataFrame rows and columns
Accessing rows
Now, let’s try to access rows in a DataFrame
. You can access rows in two ways:
df.loc
: by the index label - like adict
df.iloc
: by position (row number) - like alist
Let’s say that our Pokemon DataFrame
is indexed by "Name"
.
>>> df = pd.read_csv("pokemon.csv", index_col="Name")
>>> df.head(10)
# Type 1 ... Generation Legendary
Name ...
Bulbasaur 1 Grass ... 1 False
Ivysaur 2 Grass ... 1 False
Venusaur 3 Grass ... 1 False
VenusaurMega Venusaur 3 Grass ... 1 False
Charmander 4 Fire ... 1 False
Charmeleon 5 Fire ... 1 False
Charizard 6 Fire ... 1 False
CharizardMega Charizard X 6 Fire ... 1 False
CharizardMega Charizard Y 6 Fire ... 1 False
Squirtle 7 Water ... 1 False
[10 rows x 12 columns]
To access the row for "Charmeleon"
(as a Series
object):
>>> charmeleon_series = df.loc["Charmeleon"]
>>> print(type(charmeleon_series))
<class 'pandas.core.series.Series'>
>>> print(charmeleon_series)
# 5
Type 1 Fire
Type 2 NaN
Total 405
HP 58
Attack 64
Defense 58
Sp. Atk 80
Sp. Def 65
Speed 80
Generation 1
Legendary False
Name: Charmeleon, dtype: object
You can access the same Series
by position (row number), using the .iloc
attribute. Charmeleon
would be at row 5 (counting from 0).
>>> charmeleon_series = df.iloc[5]
>>> print(charmeleon_series)
### Same as above