到目前為止,我們了解了三種Pandas資料結構以及如何建立它們。接下來將主要關注資料影格(DataFrame)物件,因為它在實時資料處理中非常重要,並且還討論其他資料結構。
編號 | 屬性或方法 | 描述 |
---|---|---|
1 | axes |
返回行軸標籤列表。 |
2 | dtype |
返回物件的資料型別(dtype )。 |
3 | empty |
如果系列為空,則返回True 。 |
4 | ndim |
返回底層資料的維數,預設定義:1 。 |
5 | size |
返回基礎資料中的元素數。 |
6 | values |
將系列作為ndarray 返回。 |
7 | head() |
返回前n 行。 |
8 | tail() |
返回最後n 行。 |
現在建立一個系列並演示如何使用上面所有列出的屬性操作。
範例
import pandas as pd
import numpy as np
#Create a series with 100 random numbers
s = pd.Series(np.random.randn(4))
print s
執行上面範例程式碼,得到以下輸出結果 -
0 0.967853
1 -0.148368
2 -1.395906
3 -1.758394
dtype: float64
axes範例
返回系列的標籤列表。參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a series with 100 random numbers
s = pd.Series(np.random.randn(4))
print ("The axes are:")
print s.axes
執行上面範例程式碼,得到以下輸出結果 -
The axes are:
[RangeIndex(start=0, stop=4, step=1)]
上述結果是從0
到5
的值列表的緊湊格式,即:[0,1,2,3,4]
。
empty範例
返回布林值,表示物件是否為空。返回True
則表示物件為空。
import pandas as pd
import numpy as np
#Create a series with 100 random numbers
s = pd.Series(np.random.randn(4))
print ("Is the Object empty?")
print s.empty
執行上面範例程式碼,得到以下輸出結果 -
Is the Object empty?
False
ndim範例
返回物件的維數。根據定義,一個系列是一個1D
資料結構,參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a series with 4 random numbers
s = pd.Series(np.random.randn(4))
print s
print ("The dimensions of the object:")
print s.ndim
執行上面範例程式碼,得到以下結果 -
0 0.175898
1 0.166197
2 -0.609712
3 -1.377000
dtype: float64
The dimensions of the object:
1
size範例
返回系列的大小(長度)。參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a series with 4 random numbers
s = pd.Series(np.random.randn(2))
print s
print ("The size of the object:")
print s.size
執行上面範例程式碼,得到以下結果 -
0 3.078058
1 -1.207803
dtype: float64
The size of the object:
2
values範例
以陣列形式返回系列中的實際資料值。
import pandas as pd
import numpy as np
#Create a series with 4 random numbers
s = pd.Series(np.random.randn(4))
print s
print ("The actual data series is:")
print s.values
執行上面範例程式碼,得到以下結果 -
0 1.787373
1 -0.605159
2 0.180477
3 -0.140922
dtype: float64
The actual data series is:
[ 1.78737302 -0.60515881 0.18047664 -0.1409218 ]
head()和tail()方法範例
要檢視Series或DataFrame物件的小樣本,請使用head()
和tail()
方法。
head()
返回前n
行(觀察索引值)。要顯示的元素的預設數量為5
,但可以傳遞自定義這個數位值。
import pandas as pd
import numpy as np
#Create a series with 4 random numbers
s = pd.Series(np.random.randn(4))
print ("The original series is:")
print s
print ("The first two rows of the data series:")
print s.head(2)
執行上面範例程式碼,得到以下結果 -
The original series is:
0 0.720876
1 -0.765898
2 0.479221
3 -0.139547
dtype: float64
The first two rows of the data series:
0 0.720876
1 -0.765898
dtype: float64
tail()
返回最後n
行(觀察索引值)。 要顯示的元素的預設數量為5
,但可以傳遞自定義數位值。參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a series with 4 random numbers
s = pd.Series(np.random.randn(4))
print ("The original series is:")
print s
print ("The last two rows of the data series:")
print s.tail(2)
執行上面範例程式碼,得到以下結果 -
The original series is:
0 -0.655091
1 -0.881407
2 -0.608592
3 -2.341413
dtype: float64
The last two rows of the data series:
2 -0.608592
3 -2.341413
dtype: float64
下面來看看資料影格(DataFrame)的基本功能有哪些?下表列出了DataFrame基本功能的重要屬性或方法。
編號 | 屬性或方法 | 描述 |
---|---|---|
1 | T |
轉置行和列。 |
2 | axes |
返回一個列,行軸標籤和列軸標籤作為唯一的成員。 |
3 | dtypes |
返回此物件中的資料型別(dtypes )。 |
4 | empty |
如果NDFrame 完全為空[無專案],則返回為True ; 如果任何軸的長度為0 。 |
5 | ndim |
軸/陣列維度大小。 |
6 | shape |
返回表示DataFrame 的維度的元組。 |
7 | size |
NDFrame 中的元素數。 |
8 | values |
NDFrame的Numpy表示。 |
9 | head() |
返回開頭前n 行。 |
10 | tail() |
返回最後n 行。 |
下面來看看如何建立一個DataFrame並使用上述屬性和方法。
範例
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Our data series is:")
print df
執行上面範例程式碼,得到以下結果 -
Our data series is:
Age Name Rating
0 25 Tom 4.23
1 26 James 3.24
2 25 Ricky 3.98
3 23 Vin 2.56
4 30 Steve 3.20
5 29 Minsu 4.60
6 23 Jack 3.80
T(轉置)範例
返回DataFrame
的轉置。行和列將交換。參考以下範例程式碼 -
import pandas as pd
import numpy as np
# Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
# Create a DataFrame
df = pd.DataFrame(d)
print ("The transpose of the data series is:")
print df.T
執行上面範例程式碼,得到以下結果 -
The transpose of the data series is:
0 1 2 3 4 5 6
Age 25 26 25 23 30 29 23
Name Tom James Ricky Vin Steve Minsu Jack
Rating 4.23 3.24 3.98 2.56 3.2 4.6 3.8
axes範例
返回行軸標籤和列軸標籤列表。參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Row axis labels and column axis labels are:")
print df.axes
執行上面範例程式碼,得到以下結果 -
Row axis labels and column axis labels are:
[RangeIndex(start=0, stop=7, step=1), Index([u'Age', u'Name', u'Rating'],
dtype='object')]
dtypes範例
返回每列的資料型別。參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("The data types of each column are:")
print df.dtypes
執行上面範例程式碼,得到以下結果 -
The data types of each column are:
Age int64
Name object
Rating float64
dtype: object
empty範例
返回布林值,表示物件是否為空; 返回True
表示物件為空。
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Is the object empty?")
print df.empty
執行上面範例程式碼,得到以下結果 -
Is the object empty?
False
ndim範例
返回物件的維數。根據定義,DataFrame是一個2D
物件。參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Our object is:")
print df
print ("The dimension of the object is:")
print df.ndim
執行上面範例程式碼,得到以下結果 -
Our object is:
Age Name Rating
0 25 Tom 4.23
1 26 James 3.24
2 25 Ricky 3.98
3 23 Vin 2.56
4 30 Steve 3.20
5 29 Minsu 4.60
6 23 Jack 3.80
The dimension of the object is:
2
shape範例
返回表示DataFrame
的維度的元組。 元組(a,b)
,其中a
表示行數,b
表示列數。
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Our object is:")
print df
print ("The shape of the object is:")
print df.shape
執行上面範例程式碼,得到以下結果 -
Our object is:
Age Name Rating
0 25 Tom 4.23
1 26 James 3.24
2 25 Ricky 3.98
3 23 Vin 2.56
4 30 Steve 3.20
5 29 Minsu 4.60
6 23 Jack 3.80
The shape of the object is:
(7, 3)
size範例
返回DataFrame中的元素數。參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Our object is:")
print df
print ("The total number of elements in our object is:")
print df.size
執行上面範例程式碼,得到以下結果 -
Our object is:
Age Name Rating
0 25 Tom 4.23
1 26 James 3.24
2 25 Ricky 3.98
3 23 Vin 2.56
4 30 Steve 3.20
5 29 Minsu 4.60
6 23 Jack 3.80
The total number of elements in our object is:
21
values範例
將DataFrame
中的實際資料作為NDarray
返回。參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Our object is:")
print df
print ("The actual data in our data frame is:")
print df.values
執行上面範例程式碼,得到以下結果 -
Our object is:
Age Name Rating
0 25 Tom 4.23
1 26 James 3.24
2 25 Ricky 3.98
3 23 Vin 2.56
4 30 Steve 3.20
5 29 Minsu 4.60
6 23 Jack 3.80
The actual data in our data frame is:
[[25 'Tom' 4.23]
[26 'James' 3.24]
[25 'Ricky' 3.98]
[23 'Vin' 2.56]
[30 'Steve' 3.2]
[29 'Minsu' 4.6]
[23 'Jack' 3.8]]
head()和tail()範例
要檢視DataFrame物件的小樣本,可使用head()
和tail()
方法。head()
返回前n
行(觀察索引值)。顯示元素的預設數量為5
,但可以傳遞自定義數位值。參考以下範例程式碼 -
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Our data frame is:")
print df
print ("The first two rows of the data frame is:")
print df.head(2)
執行上面範例程式碼,得到以下結果 -
Our data frame is:
Age Name Rating
0 25 Tom 4.23
1 26 James 3.24
2 25 Ricky 3.98
3 23 Vin 2.56
4 30 Steve 3.20
5 29 Minsu 4.60
6 23 Jack 3.80
The first two rows of the data frame is:
Age Name Rating
0 25 Tom 4.23
1 26 James 3.24
tail()
返回最後n
行(觀察索引值)。顯示元素的預設數量為5
,但可以傳遞自定義數位值。
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
'Age':pd.Series([25,26,25,23,30,29,23]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Our data frame is:")
print df
print ("The last two rows of the data frame is:")
print df.tail(2)
執行上面範例程式碼,得到以下結果 -
Our data frame is:
Age Name Rating
0 25 Tom 4.23
1 26 James 3.24
2 25 Ricky 3.98
3 23 Vin 2.56
4 30 Steve 3.20
5 29 Minsu 4.60
6 23 Jack 3.80
The last two rows of the data frame is:
Age Name Rating
5 29 Minsu 4.6
6 23 Jack 3.8