Python Pandas DataFrame 功能

本章节我们介绍 DataFrame 基本功能。DataFrame 对象在实时数据处理中很重要。

下面是Series基本功能的列表

序号 功能 描述
1 T 转置行和列。
2 axes 返回以行轴标签和列轴标签作为唯一成员的列表。
3 dtypes 返回此对象中的 dtype。
4 empty 如果 NDFrame 完全为空 [无项目],则为真;或者任何轴的长度为 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

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

df = pd.DataFrame(d)
print ("Our data is:")
print(df)

运行示例

运行结果如下

Our data 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  Smith    4.60
6   23   Jack    3.80

T 转置

返回 DataFrame 的转置。行和列将互换。

import pandas as pd
import numpy as np

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

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  Smith  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

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

df = pd.DataFrame(d)
print ("Row axes labels and column axes labels are:")
print(df.axes)

运行示例

运行结果如下

Row axes labels and column axes labels are:
[RangeIndex(start=0, stop=7, step=1), Index([u'Age', u'Name', u'Rating'], dtype='object')]

dtype

返回每列的数据类型。

import pandas as pd
import numpy as np

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

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

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

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

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

df = pd.DataFrame(d)

print ("The dimension of the object is:")
print(df.ndim)

运行示例

运行结果如下

The dimension of the object is:
2

shape

返回一个表示 DataFrame 维度的元组。元组 (a,b),其中 a 表示行数,b表示列数。

import pandas as pd
import numpy as np

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

df = pd.DataFrame(d)

print ("The shape of the object is:")
print(df.shape)

运行示例

运行结果如下

The shape of the object is:
(7, 3)

size

返回 DataFrame 中的元素数。

import pandas as pd
import numpy as np

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

df = pd.DataFrame(d)
print ("The total number of elements in our object is:")
print(df.size)

运行示例

运行结果如下

The total number of elements in our object is:
21

values

将 DataFrame 中的实际数据作为NDarray 返回。

import pandas as pd
import numpy as np

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

df = pd.DataFrame(d)
print ("The actual data in our data frame is:")
print(df.values)

运行示例

运行结果如下

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 'Smith' 4.6]
 [23 'Jack' 3.8]]

head()返回前n行(观察索引值)。如果没有传递值,则默认显示的元素个数为5。

import pandas as pd
import numpy as np

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

df = pd.DataFrame(d)

print ("The first two rows of the data frame is:")
print(df.head(2))

运行示例

运行结果如下

The first two rows of the data frame is:
   Age   Name  Rating
0   25    Tom    4.23
1   26  James    3.24

tail()

tail()返回最后n行。如果没有传递值,则默认显示的元素个数为5。

import pandas as pd
import numpy as np

d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','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])}

df = pd.DataFrame(d)
print ("The last three rows of the data frame is:")
print df.tail(3)

运行示例

运行结果如下

The last three rows of the data frame is:
   Age   Name  Rating
4   30  Steve     3.2
5   29  Smith     4.6
6   23   Jack     3.8

查看笔记

扫码一下
查看教程更方便