(Pandas) 如何取得DataFrame資訊及大小等資訊(number of rows, columns, elements)

本文說明如何取得DataFrame行數、列數、大小、及其他相資訊(number of rows, columns, elements)。

首先建立一個DataFrame,下面各方法都以此DataFrame做範例:

1
2
3
4
5
6
7
8
9
10
11
>>> import pandas as pd 
>>> df = pd.DataFrame({
'col1': [1, 2],
'col2': ['VAL1', 'VAL2'],
'col3': [5.555, 6.666],
'col4': [None, 4]
})
>>> print(df)
col1 col2 col3 col4
0 1 VAL1 5.555 NaN
1 2 VAL2 6.666 4.0

df.info(): 顯示行數、列數、記憶體用量…等資訊

info()方法可顯示DataFrame的資訊,如記憶體用量、行數、列數、non-null(non-NaN)的元素量、欄位資料型態(Dtype)…等資訊。其結果為標準輸出,不能做為變數或用來計算。

1
2
3
4
5
6
7
8
9
10
11
12
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 col1 2 non-null int64
1 col2 2 non-null object
2 col3 2 non-null float64
3 col4 1 non-null float64
dtypes: float64(2), int64(1), object(1)
memory usage: 192.0+ bytes

df.shape: 取得行數(columns)、列數(rows)

shape屬性回傳一個tuple,裡面儲存DataFrame維度(列數及行數)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> print(df.shape)
(2, 4)

>>> print(df.shape[0])
2

>>> print(df.shape[1])
4

# Unpack a tuple and store the values in separate variables
>>> rows, cols = df.shape
>>> print(rows)
2
>>> print(cols)
4

len(): 取得行數(columns)、列數(rows)

要取得DataFrame行數及列數,可使用len()函式。

1
2
3
4
5
6
7
# rows
>>> print(len(df))
2

# columns
>>> print(len(df.columns))
4

df.size: 取得DataFrame所有元素(element)的總數量

1
2
>>> print(df.size)
8

★ 使用set_index()方法注意事項

若使用set_index()方法將column設定為index時,此column將不再計入總列數。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
>>> df2 = df.set_index(['col1'])
>>> print(df2)
col2 col3 col4
col1
1 VAL1 5.555 NaN
2 VAL2 6.666 4.0

>>> df2.info()
<class 'pandas.core.frame.DataFrame'>
Index: 2 entries, 1 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 col2 2 non-null object
1 col3 2 non-null float64
2 col4 1 non-null float64
dtypes: float64(2), object(1)
memory usage: 64.0+ bytes

>>> print(df2.shape)
(2, 3)

>>> print(len(df2.columns))
3

>>> print(df2.size)
6