Pandas 基本方法
Pandas 基本方法实例
到目前为止,我们了解了三个Pandas DataStructures以及如何创建它们。由于它在实时数据处理中的重要性,因此我们将主要关注DataFrame对象,并讨论其他一些DataStructures。
方法 | 描述 |
axes | 返回行轴标签的列表 |
dtype | 返回对象的dtype。 |
empty | 如果Series为空,则返回True。 |
ndim | 根据定义返回基础数据的维数。 |
size | 返回基础数据中的元素数。 |
values | 将Series返回为ndarray。 |
head() | 返回前n行。 |
tail() | 返回最后n行。 |
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维度的元组。 |
size | NDFrame中的元素数。 |
values | NDFrame的数字表示。 |
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