pandas学习总结

pandas中:

  • string属于object类型
  • integer属于int类型
  • boolean属于bool类型
  • 还存在着float、datatime等类型

read_csv()方法只能读取不带中文的文件目录和文件名。若是存在中文需要open()方法打开,在进行读取,否则回报错

	import pandas
	f=open("H:\\机器学习\\机器学习\\01.python数据分析与机器学习实战\\视频课程\\资料\python库代码\\2-数据分析处理库pandas\\food_info.csv")
	a=pandas.read_csv(f)
	print(type(a))#
	print(a)

head:用来显示数据,在未指定显示数据的条数时,默认显示5条数据

		b=a.head()
		print(b) #只显示五条数据
		b=a.head(3)
		print(b)

shape:根据行数和列数来显示数据的长度和宽度

print(b.shape) #(3, 36)

loc:loc(index)根据索引显示指定位置的数据

		b=a.loc[0]
		print(b) #显示第0行的数据
		d=a.loc[2:4]
		print(d) #显示第2行到第4行的数据
		e=a.loc[[1,3,6]]
		print(e) #index此时是列表的形式,所以展示的是第1行、第3行、第6行的数据
还可以根据索引的方式将显示某列的数据
		b=a['NDB_No']
		print(b) #将会显示在该列的所有数据
同样,可以传入一个列表,显示多列的数据
		c=a[['NDB_No','Shrt_Desc']]
		print(c)

columns:用来显示每列的键值 index:用来显示每行的键值

print(a.columns) #会显示所有的列的键值,获得所有的列名
		
		#Index(['NDB_No', 'Shrt_Desc', 'Water_(g)', 'Energ_Kcal', 'Protein_(g)',
		       'Lipid_Tot_(g)', 'Ash_(g)', 'Carbohydrt_(g)', 'Fiber_TD_(g)',
		       'Sugar_Tot_(g)', 'Calcium_(mg)', 'Iron_(mg)', 'Magnesium_(mg)',
		       'Phosphorus_(mg)', 'Potassium_(mg)', 'Sodium_(mg)', 'Zinc_(mg)',
		       'Copper_(mg)', 'Manganese_(mg)', 'Selenium_(mcg)', 'Vit_C_(mg)',
		       'Thiamin_(mg)', 'Riboflavin_(mg)', 'Niacin_(mg)', 'Vit_B6_(mg)',
		       'Vit_B12_(mcg)', 'Vit_A_IU', 'Vit_A_RAE', 'Vit_E_(mg)', 'Vit_D_mcg',
		       'Vit_D_IU', 'Vit_K_(mcg)', 'FA_Sat_(g)', 'FA_Mono_(g)', 'FA_Poly_(g)',
		       'Cholestrl_(mg)'],
		      dtype='object')

tolist:将获得的列名或行名列出来

	print(a.columns.tolist())

可以根据索引在整列数据找出来后进行运算操作(+,-,*,/等)

		b=a["Iron_(mg)"]/10
		print(b)#每列的数据将会除10

格式相同的两列数相操作是对应位置相操作

		d = a["Water_(g)"] * a["Energ_Kcal"]
		print(d) #对应位置相乘

在数据表原有的基础上添加一列数据

	a["Iron_(g)"] = d

max:求解一组数据的最大值

		max_calories = a["Energ_Kcal"].max()
		print(max_calories) #求该列数据的最大值

sort_value:

sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')  	   
		axis:axis:0按照行名排序;1按照列名排序, default 0,默认按照索引排序,即纵向排序,如果为1,则是横向排序    
		by:如果axis=0,那么by="列名";如果axis=1,那么by="行名";  
		ascending:布尔型,True则升序,可以是[True,False],即True:升序,False:降序  
		inplace:布尔型,是否用排序后的数据框替换现有的数据框  
		kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心  
		na_position : {‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面 

isnull:返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值/NA,该对象的类型与源类型一样

		age=t["Age"]
		age_is_null=p.isnull(age)

		at=age[age_is_null]
		print(at) #打印缺失值

notnul:isnull的否定式
len:计算一组数据的个数
计算一组数据的平均值时可能数据中存在缺失值,因此要将缺失值去掉,在进行平均值计算,否则会出现nan

		age=t["Age"]
		age_is_null=p.isnull(age)
		is_age=age[age_is_null==False]
		average=sum(is_age)/len(is_age)
		print(average)
		或直接使用mean方法
		average2=age.mean()
		print(average2)

pivot_table:

	DataFrame.pivot_table(data, values=None, index=None, columns=None, aggfunc=’mean’, fill_value=None, margins=False, dropna=True, margins_name=’All’)
		data: DataFrame对象 
		values: 显示的列的名字,可以应用aggfunc中的函数 
		index: 索引 
		columns: 可选的,通过额外的方法来分割你所关心的实际值,然而aggfunc被应用到values上, aggfunc默认的是mean
	average4=t.pivot_table(index="Pclass",values="Age")
	print(average4)
	#
	Pclass      Age     
	1       38.233441
	2       29.877630
	3       25.140620
	
	同样可以求一起对多列进行计算
	average4=t.pivot_table(index="Pclass",values=["Age","Survived"])
	print(average4)

dropna:将缺省值删除

		b=t.dropna(axis=0,subset=["Age"])
		print(b) #将Age的缺省值删去

reset_index:reset_index(drop=True)
由于sort_values方法可以对表格中的数据进行排序,排序后可能导致前面的index混乱
所以可以使用reset_index重新对索引进行排序

		new= t.sort_values("Age",ascending=False)
		c= new.reset_index(drop=True)

apply:

DataFrame.apply(func, axis=0, broadcast=False, raw=False,
reduce=None, args=(), **kwds) 在给定轴方向应用函数 可以使用apply函数调用自定义的函数
func : function|要应用在行和列的函数 axis : {0 or ‘index’, 1 or ‘columns’},
default 0|选择是行还是列 args : tuple|函数的参数

	def not_null_count(column):
	    column_null = pd.isnull(column)
	    null = column[column_null]
	    return len(null)

	column_null_count = t.apply(not_null_count)
	print(column_null_count)

pandas中主要有两种数据结构,分别是:SeriesDataFrame

Series是一种类似于一维数组的对象,由下面两个部分组成: values:一组数据(ndarray类型)
index:相关的数据索引标签

你可能感兴趣的:(学习总结,pandas学习,python)