type
date
slug
category
icon
password
1. Reduced System Structure and Get a quick grasp of basic knowledge
权威的导航网站,快速掌握基本知识,对比找出特性和使用情况
2. 可修改,补充,强调和更迭的知识框架体系
3. Practice Make Perfect and modify the knowledge Structure
4. Refine your ideas in your mind and produce excellent post in the website
Tips:
导航网站是个重要的源库
要着重于应用与实践的模块
练习,练习
A: CHEAT SHEETB: APPENDIXQuick IntroductionData Structure Data ManipulationProjects and ExercisesProject 01 : Pandas提取数据添加噪声Project 02 : 数据清洗Project 03 : ##Project 04 : ##Stage 3 — Innovation/BreakThrough
Pandas Information Source
A: CHEAT SHEET
中文翻译版

导入数据
- 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.to_csv(filename):导出数据到CSV文件
- df.to_excel(filename):导出数据到Excel文件
- df.to_sql(table_name, connection_object):导出数据到SQL表
- df.to_json(filename):以Json格式导出数据到文本文件
创建测试对象
- pd.DataFrame(np.random.rand(20,5)):创建20行5列的随机数组成的DataFrame对象
- pd.Series(my_list):从可迭代对象my_list创建一个Series对象
- df.index = pd.date_range('1900/1/30', periods=df.shape[0]):增加一个日期索引
查看、检查数据
- df.head(n):查看DataFrame对象的前n行
- df.tail(n):查看DataFrame对象的最后n行
- df.shape():查看行数和列数
- df.info():查看索引、数据类型和内存信息
- df.describe():查看数值型列的汇总统计
- s.value_counts(dropna=False):查看Series对象的唯一值和计数
- df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数
数据选取
- df[col]:根据列名,并以Series的形式返回列
- df[[col1, col2]]:以DataFrame形式返回多列
- s.iloc[0]:按位置选取数据
- s.loc['index_one']:按索引选取数据
- df.iloc[0,:]:返回第一行
- df.iloc[0,0]:返回第一列的第一个元素
数据清理
- df.columns = ['a','b','c']:重命名列名
- pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组
- pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组
- df.dropna():删除所有包含空值的行
- df.dropna(axis=1):删除所有包含空值的列
- df.dropna(axis=1,thresh=n):删除所有小于n个非空值的行
- df.fillna(x):用x替换DataFrame对象中所有的空值
- s.astype(float):将Series中的数据类型更改为float类型
- s.replace(1,'one'):用‘one’代替所有等于1的值
- s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3
- df.rename(columns=lambda x: x + 1):批量更改列名
- df.rename(columns={'old_name': 'new_ name'}):选择性更改列名
- df.set_index('column_one'):更改索引列
- df.rename(index=lambda x: x + 1):批量重命名索引
数据处理:Filter、Sort和GroupBy
- df[df[col] > 0.5]:选择col列的值大于0.5的行
- df.sort_values(col1):按照列col1排序数据,默认升序排列
- df.sort_values(col2, ascending=False):按照列col1降序排列数据
- df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数据
- 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进行分组,并计算col2和col3的最大值的数据透视表
- df.groupby(col1).agg(np.mean):返回按列col1分组的所有列的均值
- data.apply(np.mean):对DataFrame中的每一列应用函数np.mean
- data.apply(np.max,axis=1):对DataFrame中的每一行应用函数np.max
数据合并
- df1.append(df2):将df2中的行添加到df1的尾部
- df.concat([df1, df2],axis=1):将df2中的列添加到df1的尾部
- df1.join(df2,on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join
数据统计
- df.describe():查看数据值列的汇总统计
- df.mean():返回所有列的均值
- df.corr():返回列与列之间的相关系数
- df.count():返回每一列中的非空值的个数
- df.max():返回每一列的最大值
- df.min():返回每一列的最小值
- df.median():返回每一列的中位数
- df.std():返回每一列的标准差
B: APPENDIX
1. Pandas 提取两个索引的并集,不重叠的值用缺失值填充
2. Control Panel Display
df.info() - Look up information abstract
print(baseball.iloc[-20:, :12].to_string()) - return string
pd.set_option('display.width', 40) # 默认值为 80 - 宽度跨度
3. df.iloc, df.loc and df.ix
loc 在index的标签上进行索引,范围包括start和end.
iloc 在index的序号上进行索引,不包括.
ix 先在index的标签上索引,索引不到就在index的位置上索引(如果index非全整数),不包括end.

4.
Quick Introduction
Introduction
pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool,built on top of the Python programming language.
Comparison
with Other Modules or Progamming Language
Difference between ndarray and DataFrame
- ndarry save homogenous data and is good at mathmatical solution although it is also capable of solving heterous data through assigning "dtype" of each of columns.
- DataFrame , like data structure extracting from SQL database, is good at columns-based operation and manipulation
Data Structure
Series

one-dimension array containing a variety of data such as float, int string and python object
s = pd.
Series
(data, index=index)
Note: default index=[0,1,... len(data)-1]
Create Series
1.Convert multi-dimensiona matrix to series
2.Convert dictionary-formatted data to Series
3.Scalar Value — Repeat according to the length of index
Series Comparison with array and dictionary
Series类似于多维数组,支持切片,索引切片,逻辑切片,矢量操作
np.exp(s), s[[4, 3, 1]] , s[s>s.median()] s+s , s*2
1.s.dtype
2.s.array Extended array
3.s.toar 转化成真正的数组
4. matrix Operation based on aligned index
Series 类似于字典,可以类似字典样查看,添加值
DataFrame

two-dimensional index data structure consist of mulyiple formatted data, like Excel, SQL or Series
Creation
1.based on series dictionary
.png?table=block&id=4770e97a-3cca-4bce-91e1-dff143f59638&t=4770e97a-3cca-4bce-91e1-dff143f59638&width=208&cache=v2)
note: Series 字典加上指定索引时,会丢弃与传递的索引不匹配的所有数据。
2. based on (mutiple-dimension matrix or array) dictionary

3. Based on Structured multiple-dimension matrix

4. Base on list dictionary (actually. ditionary list)

5. Based on Tuple Dictionary
Alternate builder
DataFrame.from_dict
DataFrame.from_records
6.DataFrame.from_dict (default orient = column)
7. DataFrame.from_records
Selection
Reformation
Data Manipulation
Selection, Add, Delete (resemble with dictionary )
特定行列
增删
DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)
labels 就是要删除的行列的名字,用列表给定
axis 默认为0,指删除行,因此删除columns时要指定axis=1;
index 直接指定要删除的行
columns 直接指定要删除的列
inplace=False,默认该删除操作不改变原数据,而是返回一个执行删除操作后的新dataframe;
inplace=True,则会直接在原数据上进行删除操作,删除后无法返回。
条件删除
改
df.assign() # adopt user-defined function to generate more complex function
Subset
Rows Operation
df.head(n)
df.tail(n)
df.sample(frac=0.5)
df.sampel(n=10)
df.nlargest(n,'value')
df.nsmallest(n,'value')
logic in pandas
- df.column.isin(values) - Group membership
- pd.isnull(obj) - is NaN
- pd.notnull(obj) - is not NaN
- df.any()
- df.all()
Columns Operation
df[['widdth','length','species']]
df['width'] = df.width
df.filter(regex='regex')
df.loc[:,'x2':'x4']
df.iloc[:,[1,2,5]]
df.loc[df['a']>10,['a','c']]
Summarize data
Index
1.重置索引 (.reset_index() 备份原索引在index列 .set_index() 无备份,指定索引列)
2.多级索引
生成多级索引 → 创建DataFrame → 获取数据
Sort(df.sort_values()), Filter(series.unique()) , Groupby(df.group())
Join, Combine
数据集成,清洗,变换和分析
Projects and Exercises
Project 01 : Pandas提取数据添加噪声
Project 02 : 数据清洗
解决数据质量问题
Name
含义
处理方式
关键特征齐全
1. 通过其他信息补全,例如使用身份证件号码推算性别、籍贯、出生日期、年龄等;2. 通过其他信息补全,例如使用身份证件号码推算性别、籍贯、出生日期、年龄等;3. 实在补不全的,虽然很可惜,但也必须要剔除。但是不要删掉,没准以后可以用得上
与常识不符
1. 设定强制合法规则,凡是不在此规则范围内的,强制设为最大值,或者判为无效,剔除 2. 设定警告规则,凡是不在此规则范围内的,进行警告,然后人工处理 3. 离群值人工特殊处理,使用分箱、聚类、回归、等方式发现离群值
数据适合挖掘展示
Name
解决方法
1. 主成分分析;2. 随机森林
1. 汇总,平均值,最值,加总 ;2. 各种离散化,聚类、自定义分组等
剔除无关信息和字段冗余
最小-最大,零-均值, 小数定标
Project 03 : ##
p
Project 04 : ##
Stage 3 — Innovation/BreakThrough
- Author:felixfixit
- URL:http://www.felixmicrospace.top/33486d5d7dfe456db0193e8089e5dd69
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!