从零开始-Machine Learning学习笔记(15)-数据处理分析工具Pandas学习笔记

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

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/82259577
今日推荐