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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kabuto_hui/article/details/82782613

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)  #采样后放回

猜你喜欢

转载自blog.csdn.net/kabuto_hui/article/details/82782613
今日推荐