DataFrame attributes
The pd.DataFrame
shares many of the attributes of the pd.Series
, with some slight differences. Generally, pandas tries to share as many attributes as possible between the pd.Series
and pd.DataFrame
, but the two-dimensional nature of the pd.DataFrame
makes it more natural to express some things in plural form (for example, the .dtype
attribute becomes .dtypes
) and gives us a few more attributes to inspect (for example, .columns
exists for a pd.DataFrame
but not for a pd.Series
).
How to do it
Much like we did in the previous section, we are going to construct a pd.DataFrame
with a custom pd.Index
in the rows, while also using custom labels in the columns. This will be more helpful when inspecting the various attributes:
index = pd.Index(["Jack", "Jill"], name="person")
df = pd.DataFrame([
[24, 180, "red"],
[42, 166, "blue"],
], columns=["age", "height_cm", "favorite_color"], index=index)
df
age height_cm favorite_color
person
Jack 24 180 red
Jill 42 166 blue
The types of each column can be inspected via the pd.DataFrame.dtypes
attribute. This attribute returns a pd.Series
where each row shows the data type corresponding to each column in our pd.DataFrame
:
df.dtypes
age int64
height_cm int64
favorite_color object
dtype: object
The row index can be accessed via pd.DataFrame.index
:
df.index
Index(['Jack', 'Jill'], dtype='object', name='person')
The column index can be accessed via pd.DataFrame.columns
:
df.columns
Index(['age', 'height_cm', 'favorite_color'], dtype='object')
The shape can be accessed via pd.DataFrame.shape
. For a two-dimensional pd.DataFrame
, the shape is returned as a two-tuple where the first element represents the number of rows and the second element represents the number of columns:
df.shape
2 3
The size (number of elements) can be accessed via pd.DataFrame.size
:
df.size
6
The Python built-in function len
can show you the length (number of rows):
len(df)
2
Join our community on Discord
Join our community’s Discord space for discussions with the authors and other readers: