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))#<class 'pandas.core.frame.DataFrame'>
	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 学习教程与入门指南 Pandas 是一个用于数据处理和分析的强大 Python 库,其设计目标是为了简化复杂的数据操作流程。以下是关于 Pandas学习路径以及一些核心概念的详细介绍。 #### 1. Pandas 基础介绍 Pandas 是基于 NumPy 构建的一个开源库,主要用于数据分析和处理[^1]。它的名称来源于 **Panel Data** 和 **Data Analysis** 的组合,在经济学领域中,“Panel Data” 表示多维时间序列数据。Pandas 提供了两种主要的数据结构——`Series` 和 `DataFrame`,分别对应一维数组和二维表格形式的数据存储方式。 #### 2. 安装与导入 要开始使用 Pandas,首先需要安装并导入该库。可以通过以下命令完成安装: ```bash pip install pandas ``` 在脚本或交互环境中引入 Pandas: ```python import pandas as pd ``` #### 3. 数据结构概述 ##### (1) Series `Series` 是一种类似于一维数组的对象,可以保存任意类型的对象。 ```python s = pd.Series([1, 3, 5, np.nan, 6, 8]) print(s) ``` 输出结果如下: ``` 0 1.0 1 3.0 2 5.0 3 NaN 4 6.0 5 8.0 dtype: float64 ``` ##### (2) DataFrame `DataFrame` 类似于电子表格或者 SQL 表格,是一种二维标签化数据结构。 ```python df = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Los Angeles', 'Chicago'] }) print(df) ``` 输出结果如下: ``` Name Age City 0 Alice 25 New York 1 Bob 30 Los Angeles 2 Charlie 35 Chicago ``` #### 4. 数据读取与写入 Pandas 支持多种文件格式的数据加载与导出,包括 CSV、Excel、SQL 数据库等。 - 加载 CSV 文件: ```python data = pd.read_csv('file.csv') ``` - 导出到 Excel 文件: ```python data.to_excel('output.xlsx', index=False) ``` #### 5. 数据探索与描述性统计 通过内置函数可轻松获取数据的基本统计信息。 - 获取摘要统计量: ```python summary = data.describe() print(summary) ``` 此方法会返回数值型列的计数、均值、标准差、最小值、四分位数及最大值等指标[^2]。 - 计算特定列的平均值: ```python mean_value = data['Age'].mean() print(mean_value) ``` #### 6. 数据筛选与过滤 可以根据条件对数据进行子集提取。 ```python filtered_data = data[data['Age'] > 30] print(filtered_data) ``` #### 7. 缺失值处理 Pandas 提供了便捷的方法来检测和填充缺失值。 - 检测缺失值: ```python missing_values = data.isnull().sum() print(missing_values) ``` - 使用指定值填补缺失项: ```python filled_data = data.fillna(0) print(filled_data) ``` #### 8. 排序与分组 - 按某一列排序: ```python sorted_data = data.sort_values(by='Age', ascending=True) print(sorted_data) ``` - 按某字段分组计算汇总统计: ```python grouped_stats = data.groupby('City')['Age'].mean() print(grouped_stats) ``` --- ### 实际案例演示 假设有一个销售记录表,包含商品类别、销售额和其他属性的信息,我们可以利用 Pandas 来执行一系列的操作: ```python # 创建样本数据框 sales_data = pd.DataFrame({ 'Category': ['Electronics', 'Books', 'Clothing', 'Electronics', 'Books'], 'Sales': [200, 150, 300, 250, 100], 'Region': ['North', 'South', 'East', 'West', 'Central'] }) # 查看前几行数据 print(sales_data.head()) # 统计各分类总销售额 category_totals = sales_data.groupby('Category')['Sales'].sum() print(category_totals) # 找出最高销售额所在区域 max_sales_region = sales_data.loc[sales_data['Sales'].idxmax(), 'Region'] print(max_sales_region) ``` --- ### 总结 以上内容涵盖了 Pandas 的基础知识及其常见应用场景。对于初学者而言,建议从简单的数据加载、查看和基本运算入手,逐步深入掌握更复杂的特性如数据透视表、时间序列分析等功能[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值