Pandas 基本方法

Pandas 基本方法实例

到目前为止,我们了解了三个Pandas DataStructures以及如何创建它们。由于它在实时数据处理中的重要性,因此我们将主要关注DataFrame对象,并讨论其他一些DataStructures。

方法描述
axes返回行轴标签的列表
dtype返回对象的dtype。
empty如果Series为空,则返回True。
ndim根据定义返回基础数据的维数。
size返回基础数据中的元素数。
values将Series返回为ndarray。
head()返回前n行。
tail()返回最后n行。
接下来我们创建一个Series,并看看上所有列表的属性操作。
importpandasaspdimportnumpyasnp#用100随机数创建一个Seriess=pd.Series(np.random.randn(4))print(s)

运行结果:

00.9678531-0.1483682-1.3959063-1.758394dtype:float64

axes

返回Series标签的列表

importpandasaspdimportnumpyasnp#用100随机数创建一个Seriess=pd.Series(np.random.randn(4))print("Theaxesare:")print(s.axes)

运行结果:

Theaxesare:[RangeIndex(start=0,stop=4,step=1)]

以上结果是0到5(即[0,1,2,3,4])。

empty

返回布尔值,说明对象是否为空。True表示对象为空

importpandasaspdimportnumpyasnp#用100随机数创建一个Seriess=pd.Series(np.random.randn(4))print("IstheObjectempty?")print(s.empty)

运行结果:

IstheObjectempty?False

ndim

返回对象的维数。根据定义,Series 是一个1D 数据结构,所以它返回

importpandasaspdimportnumpyasnp#用4个随机数创建一个Seriess=pd.Series(np.random.randn(4))printsprint("Thedimensionsoftheobject:")print(s.ndim)

运行结果:

00.17589810.1661972-0.6097123-1.377000dtype:float64Thedimensionsoftheobject:1

size

返回Series的大小(长度).

importpandasaspdimportnumpyasnp#用4个随机数创建一个Seriess=pd.Series(np.random.randn(2))printsprint("Thesizeoftheobject:")print(s.size)

运行结果:

03.0780581-1.207803dtype:float64Thesizeoftheobject:2

values

以数组形式返回Series数据

importpandasaspdimportnumpyasnp#用4个随机数创建一个Seriess=pd.Series(np.random.randn(4))printsprint("Theactualdataseriesis:")print(s.values)

运行结果:

01.7873731-0.60515920.1804773-0.140922dtype:float64Theactualdataseriesis:[1.78737302-0.605158810.18047664-0.1409218]

Head 和 Tail

要查看Series或DataFrame对象的头尾数据,请使用head() 和tail() 方法。

head() 返回前n行(观察索引值)。默认显示的元素数是5,但是您可以传递自定义数字。

importpandasaspdimportnumpyasnp#用4个随机数创建一个Seriess=pd.Series(np.random.randn(4))print("最初的系列是:")printsprint("数据系列的前两行:")print(s.head(2))

运行结果:

最初的系列是:00.7208761-0.76589820.4792213-0.139547dtype:float64数据系列的前两行:00.7208761-0.765898dtype:float64

tail() 返回最后n行(观察索引值)。默认显示的元素数是5,但是您可以传递自定义数字。

importpandasaspdimportnumpyasnp#用4个随机数创建一个Seriess=pd.Series(np.random.randn(4))print("最初的系列是:")print(s)print("数据序列的最后两行:")print(s)tail(2)

运行结果:

最初的系列是:0-0.6550911-0.8814072-0.6085923-2.341413dtype:float64数据序列的最后两行:2-0.6085923-2.341413dtype:float64

DataFrame 基本功能

现在让我们了解什么是DataFrame基本功能。下表列出了有助于DataFrame基本功能的重要属性或方法。

属性/方法描述
T行和列互相转换
axes返回以行轴标签和列轴标签为唯一成员的列表。
dtypes返回此对象中的dtypes。
empty如果NDFrame完全为空[没有项目],则为true;否则为false。如果任何轴的长度为0。
ndim轴数/数组尺寸。
shape返回表示DataFrame维度的元组。
sizeNDFrame中的元素数。
valuesNDFrame的数字表示。
head()返回前n行。
tail()返回最后n行。

下面我们下创建一个DataFrame并查看上述属性的所有操作方式。

Example

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("Ourdataseriesis:")print(df)

运行结果:

Ourdataseriesis:AgeNameRating025Tom4.23126James3.24225Ricky3.98323Vin2.56430Steve3.20529Smith4.60623Jack3.80

T (Transpose)

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

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("数据序列的转置是:")print(df.T)

运行结果:

数据序列的转置是:0123456Age25262523302923NameTomJamesRickyVinSteveSmithJackRating4.233.243.982.563.24.63.8

axes

返回行轴标签和列轴标签的列表。

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("行轴标签和列轴标签是:")print(df.axes)

运行结果:

行轴标签和列轴标签是:[RangeIndex(start=0,stop=7,step=1),Index([u'Age',u'Name',u'Rating'],dtype='object')]

dtypes

返回每一列的数据类型。

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("每列的数据类型如下:")print(df.dtypes)

运行结果:

每列的数据类型如下:Ageint64NameobjectRatingfloat64dtype:object

empty

返回布尔值,说明对象是否为空;True表示对象为空。

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("Istheobjectempty?")print(df.empty)

运行结果:

Istheobjectempty?False

ndim

返回对象的数量。根据定义,DataFrame是2D对象。

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("Ourobjectis:")printdfprint("Thedimensionoftheobjectis:")print(df.ndim)

运行结果:

Ourobjectis:AgeNameRating025Tom4.23126James3.24225Ricky3.98323Vin2.56430Steve3.20529Smith4.60623Jack3.80Thedimensionoftheobjectis:2

shape

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

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("Ourobjectis:")printdfprint("Theshapeoftheobjectis:")print(df.shape)

运行结果:

Ourobjectis:AgeNameRating025Tom4.23126James3.24225Ricky3.98323Vin2.56430Steve3.20529Smith4.60623Jack3.80Theshapeoftheobjectis:(7,3)

size

返回DataFrame中的元素数。

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("Ourobjectis:")printdfprint("Thetotalnumberofelementsinourobjectis:")print(df.size)

运行结果:

Ourobjectis:AgeNameRating025Tom4.23126James3.24225Ricky3.98323Vin2.56430Steve3.20529Smith4.60623Jack3.80Thetotalnumberofelementsinourobjectis:21

values

以NDarray的形式返回DataFrame中的实际数据。

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("Ourobjectis:")printdfprint("Theactualdatainourdataframeis:")print(df.values)

运行结果:

Ourobjectis:AgeNameRating025Tom4.23126James3.24225Ricky3.98323Vin2.56430Steve3.20529Smith4.60623Jack3.80Theactualdatainourdataframeis:[[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 & Tail

要查看DataFrame对象的头尾数据,请使用head()和tail()方法。head() 返回前n行(观察索引值)。默认显示的元素数是5,但是您可以传递自定义数字。

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("Ourdataframeis:")printdfprint("Thefirsttworowsofthedataframeis:")print(df.head(2))

运行结果:

Ourdataframeis:AgeNameRating025Tom4.23126James3.24225Ricky3.98323Vin2.56430Steve3.20529Smith4.60623Jack3.80Thefirsttworowsofthedataframeis:AgeNameRating025Tom4.23126James3.24

tail() 返回最后n行(观察索引值)。默认显示的元素数是5,但是您可以传递自定义数字。

importpandasaspdimportnumpyasnp#创建Series字典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])}#创建一个DataFramedf=pd.DataFrame(d)print("我们的数据帧是:")printdfprint("数据帧的最后两行是:")print(df.tail(2))

运行结果:

我们的数据帧是:AgeNameRating025Tom4.23126James3.24225Ricky3.98323Vin2.56430Steve3.20529Smith4.60623Jack3.80数据帧的最后两行是:AgeNameRating529Smith4.6623Jack3.8
编辑于2024-05-20 14:19