从零开始-Machine Learning学习笔记(17)-Pandas学习笔记(1).md

本文详细介绍了使用Pandas进行数据导入、导出、信息查看、清洗、处理和统计的方法,包括从各种格式文件读取数据、数据筛选、排序、分组、合并及统计分析等高级技巧。

1. 导入与导出数据

import pandas as pd
pd.read_csv(filename)					#从CSV文件导入数据
pd.read_table(filename)					#从限定分隔符的文本文件导入数据
pd.read_excel(filename)					#从Excel文件导入数据
pd.read_sql(query, connection_object)	 #从SQL表/库导入数据
pd.read_json(json_string)				#从JSON格式的字符串导入数据
pd.read_html(url)			#解析URL、字符串或者HTML文件,抽取其中的tables表格
pd.read_clipboard()			#从你的粘贴板获取内容,并传给read_table()
pd.DataFrame(dict)			#从字典对象导入数据,Key是列名,Value是数据

如果要按特定的一列或者几列来加载,可以这么写:

df = pd.DataFrame(pd.read_csv('name.csv', usecols=['colname1','colname2','colname3']))

如果数据特别多,可能会导致内存爆炸,所以还可以分批加载数据:

chunk_size = 50
chunks = []
for chunk in pd.read_csv('name.csv', chunksize = chunk_size)
	#分批数据处理
	#分批数据分析
	chunks.append(chunk)
df = pd.concat(chunks, axis = 0) # axis = 0行  axis = 1列

数据的导出:

df.to_csv(filename)								#导出数据到CSV文件
df.to_excel(filename)							#导出数据到Excel文件
df.to_sql(table_name, connection_object)		  #导出数据到SQL表
df.to_json(filename)							#以Json格式导出数据到文本文件

2. 数据信息查看

df.shape		#查看维度
df.info()		#内存和数据类型
df.dtypes		#每一列数据的格式
df.head(n)		#浏览数据的前 n 行,默认 5 行
df.tail(n)		#浏览数据的末尾 n 行,默认 5 行
df.sample(n)	#随机浏览 n 行数据,默认 5 行
df.describe()	#数据的分布情况
df.isnull()		#空值
df['colname'].isnull() #查看某一列的空值
df['colname'].unique() #查看某一列的唯一值
df.columns		#查看列的名称

3.数据表的清洗

df.fillna(value=0)							#使用0来填充空值
df['colname'].fillna(df['colname'].mean())	  #使用某列的均值来填充空值
df.columns = ['a','b','c']					 #重命名列名
df.isnull()					#检查DataFrame对象中的空值,并返回一个Boolean数组
df.notnull()				#检查DataFrame对象中的非空值,并返回一个Boolean数组
df.dropna()					#删除所有包含空值的行
df.dropna(axis=1)			 #删除所有包含空值的列
df.dropna(axis=1,thresh=n)	  #删除所有小于n个非空值的行
df['colname'].astype('int')   #更改数据格式
df.rename(columns={'category': 'category-size'})  #更改某一列的名称
df['city'].drop_duplicates()			#删除后出现的重复值
df['city'].drop_duplicates(keep='last')	 #删除先出现的重复值
df['city'].replace('sh', 'shanghai')	 #数据替换
df['city'].replace(['sh', 'bj'], ['shanghai', 'beijing'])	 #批量数据替换

4. 数据处理:Filter、Sort和GroupBy、数据合并

# Filter
df[df['colname'] > 0.5]		#选择col列的值大于0.5的行
df.loc[index]			   #单行提取数据
df.loc[25]			   	  #多行提取数据,从2-5
df.iloc[25]			  #多行提取数据,从2-4(按区域)
df.iloc[[0,2,5],[4,5]] 		#提取第0、2、5行,4、5列
df.reset_index()			#重设索引
df.loc[df_inner['city'].isin(['beijing','shanghai'])] #价格city中有shanghai和													beijing的数据提取出来
df.query('city == ["beijing", "shanghai"]')	#使用query进行数据筛选

# Sort
df.sort_values('colname')	#按照列排序数据,默认升序排列
df.sort_values('colname', ascending=False)	#按照列col1降序排列数据
df.sort_values([col1,col2], ascending=[True,False])	#先按列col1升序排列,后按													col2降序排列数据
# GroupBy
df.groupby(col)				#返回一个按列col进行分组的Groupby对象
df.groupby([col1,col2])		#返回一个按多列进行分组的Groupby对象
df.groupby(col1)[col2]		#返回按列col1进行分组后,列col2的均值
df.pivot_table(index=col1, values=[col2,col3], aggfunc=max)	#创建一个按列col1进
data.apply(np.mean)			#对DataFrame中的每一列应用函数np.mean
data.apply(np.max,axis=1)	#对DataFrame中的每一行应用函数np.max

#数据合并
df1.append(df2)					#将df2中的行添加到df1的尾部
pd.concat([df1, df2],axis=1)	 #将df2中的列添加到df1的尾部

5. 数据统计

df.describe()			#查看数据值列的汇总统计
df.mean()				#返回所有列的均值
df.corr()				#返回列与列之间的相关系数
df.cov()				#数据表中所有字段间的协方差
df.count()				#返回每一列中的非空值的个数
df.max()				#返回每一列的最大值
df.min()				#返回每一列的最小值
df.median()				#返回每一列的中位数
df.std()				#返回每一列的标准差
df.sample(n=3) 			#简单的数据采样
df.sample(n=6, replace=False) #采样后不放回
df.sample(n=6, replace=True)  #采样后放回
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径。 随着统计学的发展,统计学习在机器学习中占据了重要地位,支持向量机(SVM)、决策树和随机森林等算法的提出和发展,使得机器学习能够更好地处理分类、回归和聚类等任务。进入21世纪,深度学习成为机器学习领域的重要突破,采用多层神经网络模型,通过大量数据和强大的计算能力来训练模型,在计算机视觉、自然语言处理和语音识别等领域取得了显著的成果。 机器学习算法在各个领域都有广泛的应用,包括医疗保健、金融、零售和电子商务、智能交通、生产制造等。例如,在医疗领域,机器学习技术可以帮助医生识别医疗影像,辅助诊断疾病,预测病情发展趋势,并为患者提供个性化的治疗方案。在金融领域,机器学习模型可以分析金融数据,识别潜在风险,预测股票市场的走势等。 未来,随着传感器技术和计算能力的提升,机器学习将在自动驾驶、智能家居等领域发挥更大的作用。同时,随着物联网技术的普及,机器学习将助力智能家居设备实现更加智能化和个性化的功能。在工业制造领域,机器学习也将实现广泛应用,如智能制造、工艺优化和质量控制等。 总之,机器学习是一门具有广阔应用前景和深远影响的学科,它将持续推动人工智能技术的发展,为人类社会的进步做出重要贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值