用python函数分析 python函数总结

python可以做哪些数据分析1、检查数据表
Python中使用shape函数来查看数据表的维度 , 也就是行数和列数 。你可以使用info函数查看数据表的整体信息 , 使用dtypes函数来返回数据格式 。Isnull是Python中检验空值的函数 , 你可以对整个数据表进行检查,也可以单独对某一列进行空值检查 , 返回的结果是逻辑值,包含空值返回True,不包含则返回False 。使用unique函数查看唯一值 , 使用Values函数用来查看数据表中的数值 。
2、数据表清洗
Python中处理空值的方法比较灵活,可以使用Dropna函数用来删除数据表中包含空值的数据,也可以使用fillna函数对空值进行填充 。Python中dtype是查看数据格式的函数,与之对应的是astype函数,用来更改数据格式,Rename是更改列名称的函数,drop_duplicates函数删除重复值 , replace函数实现数据替换 。
3、数据预处理
数据预处理是对清洗完的数据进行整理以便后期的统计和分析工作,主要包括数据表的合并、排序、数值分列、数据分组及标记等工作 。在Python中可以使用merge函数对两个数据表进行合并 , 合并的方式为inner,此外还有left、right和outer方式 。使用ort_values函数和sort_index函数完成排序 , 使用where函数完成数据分组,使用split函数实现分列 。
4、数据提取
主要是使用三个函数:loc、iloc和ix , 其中loc函数按标签值进行提?。?iloc按位置进行提取,ix可以同时按标签和位置进行提取 。除了按标签和位置提起数据以外,还可以按具体的条件进行数据,比如使用loc和isin两个函数配合使用,按指定条件对数据进行提取 。
5、数据筛选汇总
Python中使用loc函数配合筛选条件来完成筛选功能,配合sum和 count函数还能实现excel中sumif和countif函数的功能 。Python中使用的主要函数是groupby和pivot_table 。groupby是进行分类汇总的函数,使用方法很简单 , 制定要分组的列名称就可以,也可以同时制定多个列名称,groupby 按列名称出现的顺序进行分组 。
Python通过装饰器并使用cprofile对函数进行性能分析Python中提供了很多接口方便我们能够灵活进行性能分析,包括cProfile模块中的Profile类和pstat模块中的Stats类 。
--cprofile是一种确定性分析器,只测量CPU时间 , 并不关心内存的消耗情况和其他与内存相关联的信息
--它是基于Isprof的用C语言实现的扩展应用,运行开销比较合理 , 适合分析运行时间较长的程序
--enable(): 开始进行性能分析并收集数据
--disableI(): 停止性能分析
--create_stats(): 停止收集数据 , 并为已经收集的数据创建stats对象
--print_stats():创建stats对象并打印分析结果
--dump_stats(filename): 把当前性能分析的内容写入文件filename中
--runcall(func, *args, **kwargs): 收集被调用函数func的性能分析信息
--用来分析cProfile输出的文件内容
--pstas模块为开发者提供了Stats类,可以读取和操作stats文件
(Stats类可以接受stats文件名,也可以直接接受cProfile.Profile对象作为数据源 。)
--strip_dirs(): 删除报告中所有函数文件名的路径信息
【用python函数分析 python函数总结】 --dump_stats(filename): 把stats中的分析数据写入文件(也可以写成cProfile.Profile.dump_stats())
--sort_stats(*keys): 对报告列表进行排序,函数会一次按照传入的参数排序
--reverse_order(): 逆反当前的排序
--print_stats(*restrictions): 把信息打印到标准输出 。*restrictions用于控制打印结果的形式,比如(10,1.0,".*.py.*")表示打印所有py文件的信息的前10行结果
--第一行表示运行这个函数一共使用0.043秒 , 执行了845次函数调用
--第二行表示结果是按什么顺序排列的(这里表示按照调用次数来进行排列的)
--ncalls: 表示函数调用的次数(有两个数值表示有递归调用 , 总调用次数/原生调用次数)
--tottime: 函数内部调用时间(不包括他自己调用的其他函数时间)
--percall: tottime/ncalls
--cumtime: 表示累计调用时间(函数执行玩的总时间),它包含了函数自己内部调用的函数时间
--filename:lineno(function): 函数所在的文件,行号,函数名称
上面的函数do_cProfile(do=False, order='tottime')是一个带参数的装饰器,通过do的值来进行性能分析的开关控制 , 通过order的值来选择输出结果按照什么方式进行排序 。
比如我们对函数A和函数B进行性能分析
如果不给装饰器传入参数的话就是默认的False和tottime
利用Python进行数据分析(10)-移动窗口函数Python-for-data-移动窗口函数
本文中介绍的是,主要的算子是:
统计和通过其他移动窗口或者指数衰减而运行的函数 , 称之为 移动窗口函数
style scoped="".dataframe tbody tr th:only-of-type { vertical-align: middle; } precode.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } /code/pre/style
2292 rows × 3 columns
rolling算子,行为和resample和groupby类似
rolling可以在S或者DF上通过一个window进行调用
style scoped="".dataframe tbody tr th:only-of-type { vertical-align: middle; } precode.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } /code/pre/style
2292 rows × 3 columns
指定一个常数衰减因子为观测值提供更多的权重 。常用指定衰减因子的方法:使用span(跨度)
一些统计算子,例如相关度和协方差等需要同时操作两个时间序列 。
例如,金融分析中的股票和基准指数的关联性问题:计算时间序列的百分比变化pct_change()
style scoped="".dataframe tbody tr th:only-of-type { vertical-align: middle; } precode.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } /code/pre/style
在rolling及其相关方法上使用apply方法提供了一种在移动窗口中应用自己设计的数组函数的方法 。
唯一要求:该函数从每个数组中产生一个单值(缩聚) , 例如使用rolling()...quantile(q)计算样本的中位数
怎样用 Python 进行数据分析?做数据分析,首先你要知道有哪些数据分析的方法,然后才是用Python去调用这些方法
那Python有哪些库类是能做数据分析的,很多,pandas,sklearn等等
所以你首先要装一个anaconda套件,它包含了几乎所有的Python数据分析工具 ,
之后再学怎么分析 。
可以让你快速用Python进行数据分析的10个小技巧 一些小提示和小技巧可能是非常有用的,特别是在编程领域 。有时候使用一点点黑客技术,既可以节省时间,还可能挽救“生命” 。
一个小小的快捷方式或附加组件有时真是天赐之物,并且可以成为真正的生产力助推器 。所以 , 这里有一些小提示和小技巧 , 有些可能是新的,但我相信在下一个数据分析项目中会让你非常方便 。
Pandas中数据框数据的Profiling过程
Profiling(分析器)是一个帮助我们理解数据的过程 , 而Pandas Profiling是一个Python包 , 它可以简单快速地对Pandas 的数据框数据进行 探索 性数据分析 。
Pandas中df.describe()和df.info()函数可以实现EDA过程第一步 。但是,它们只提供了对数据非常基本的概述,对于大型数据集没有太大帮助 。而Pandas中的Profiling功能简单通过一行代码就能显示大量信息,且在交互式HTML报告中也是如此 。
对于给定的数据集,Pandas中的profiling包计算了以下统计信息:
由Pandas Profiling包计算出的统计信息包括直方图、众数、相关系数、分位数、描述统计量、其他信息——类型、单一变量值、缺失值等 。
安装
用pip安装或者用conda安装
pip install pandas-profiling
conda install -c anaconda pandas-profiling
用法
下面代码是用很久以前的泰坦尼克数据集来演示多功能Python分析器的结果 。
#importing the necessary packages
import pandas as pd
import pandas_profiling
df = pd.read_csv('titanic/train.csv')
pandas_profiling.ProfileReport(df)
一行代码就能实现在Jupyter Notebook中显示完整的数据分析报告,该报告非常详细,且包含了必要的图表信息 。
还可以使用以下代码将报告导出到交互式HTML文件中 。
profile = pandas_profiling.ProfileReport(df)
profile.to_file(outputfile="Titanic data profiling.html")
Pandas实现交互式作图
Pandas有一个内置的.plot()函数作为DataFrame类的一部分 。但是,使用此功能呈现的可视化不是交互式的 , 这使得它没那么吸引人 。同样,使用pandas.DataFrame.plot()函数绘制图表也不能实现交互 。如果我们需要在不对代码进行重大修改的情况下用Pandas绘制交互式图表怎么办呢?这个时候就可以用Cufflinks库来实现 。
Cufflinks库可以将有强大功能的plotly和拥有灵活性的pandas结合在一起,非常便于绘图 。下面就来看在pandas中如何安装和使用Cufflinks库 。
安装
pip install plotly
# Plotly is a pre-requisite before installing cufflinks
pip install cufflinks
用法
#importing Pandas
import pandas as pd
#importing plotly and cufflinks in offline mode
import cufflinks as cf
import plotly.offline
cf.go_offline()
cf.set_config_file(offline=False, world_readable=True)
是时候展示泰坦尼克号数据集的魔力了 。
df.iplot()
df.iplot() vs df.plot()
右侧的可视化显示了静态图表 , 而左侧图表是交互式的,更详细,并且所有这些在语法上都没有任何重大更改 。
Magic命令
Magic命令是Jupyter notebook中的一组便捷功能,旨在解决标准数据分析中的一些常见问题 。使用命令%lsmagic可以看到所有的可用命令 。
所有可用的Magic命令列表
Magic命令有两种:行magic命令(line magics),以单个%字符为前缀,在单行输入操作;单元magic命令(cell magics),以双%%字符为前缀,可以在多行输入操作 。如果设置为1,则不用键入%即可调用Magic函数 。
接下来看一些在常见数据分析任务中可能用到的命令:
% pastebin
%pastebin将代码上传到Pastebin并返回url 。Pastebin是一个在线内容托管服务,可以存储纯文本,如源代码片段,然后通过url可以与其他人共享 。事实上,Github gist也类似于pastebin,只是有版本控制 。
在file.py文件中写一个包含以下内容的python脚本,并试着运行看看结果 。
#file.py
def foo(x):
return x
在Jupyter Notebook中使用%pastebin生成一个pastebin url 。
%matplotlib notebook
函数用于在Jupyter notebook中呈现静态matplotlib图 。用notebook替换inline,可以轻松获得可缩放和可调整大小的绘图 。但记得这个函数要在导入matplotlib库之前调用 。
%run
用%run函数在notebook中运行一个python脚本试试 。
%run file.py
%%writefile
%% writefile是将单元格内容写入文件中 。以下代码将脚本写入名为foo.py的文件并保存在当前目录中 。
%%latex
%%latex函数将单元格内容以LaTeX形式呈现 。此函数对于在单元格中编写数学公式和方程很有用 。
查找并解决错误
交互式调试器也是一个神奇的功能 , 我把它单独定义了一类 。如果在运行代码单元时出现异常,请在新行中键入%debug并运行它 。这将打开一个交互式调试环境,它能直接定位到发生异常的位置 。还可以检查程序中分配的变量值,并在此处执行操作 。退出调试器单击q即可 。
Printing也有小技巧
如果您想生成美观的数据结构,pprint是首选 。它在打印字典数据或JSON数据时特别有用 。接下来看一个使用print和pprint来显示输出的示例 。
让你的笔记脱颖而出
我们可以在您的Jupyter notebook中使用警示框/注释框来突出显示重要内容或其他需要突出的内容 。注释的颜色取决于指定的警报类型 。只需在需要突出显示的单元格中添加以下任一代码或所有代码即可 。
蓝色警示框:信息提示
p class="alert alert-block alert-info"
bTip:/b Use blue boxes (alert-info) for tips and notes.
If it’s a note, you don’t have to include the word “Note”.
/p
黄色警示框:警告
p class="alert alert-block alert-warning"
bExample:/b Yellow Boxes are generally used to include additional examples or mathematical formulas.
/p
绿色警示框:成功
p class="alert alert-block alert-success"
Use green box only when necessary like to display links to related content.
/p
红色警示框:高危
p class="alert alert-block alert-danger"
It is good to avoid red boxes but can be used to alert users to not delete some important part of code etc.
/p
打印单元格所有代码的输出结果
假如有一个Jupyter Notebook的单元格,其中包含以下代码行:
In [1]: 10 5
11 6
Out [1]: 17
单元格的正常属性是只打印最后一个输出,而对于其他输出,我们需要添加print()函数 。然而通过在notebook顶部添加以下代码段可以一次打印所有输出 。
添加代码后所有的输出结果就会一个接一个地打印出来 。
In [1]: 10 5
11 6
12 7
Out [1]: 15
Out [1]: 17
Out [1]: 19
恢复原始设置:
InteractiveShell.ast_node_interactivity = "last_expr"
使用'i'选项运行python脚本
从命令行运行python脚本的典型方法是:python hello.py 。但是 , 如果在运行相同的脚本时添加-i,例如python -i hello.py,就能提供更多优势 。接下来看看结果如何 。
首先 , 即使程序结束,python也不会退出解释器 。因此,我们可以检查变量的值和程序中定义的函数的正确性 。
其次,我们可以轻松地调用python调试器 , 因为我们仍然在解释器中:
import pdb
pdb.pm()
这能定位异常发生的位置,然后我们可以处理异常代码 。
自动评论代码
Ctrl / Cmd/自动注释单元格中的选定行,再次命中组合将取消注释相同的代码行 。
删除容易恢复难
你有没有意外删除过Jupyter notebook中的单元格?如果答案是肯定的,那么可以掌握这个撤消删除操作的快捷方式 。
如果您删除了单元格的内容,可以通过按CTRL / CMDZ轻松恢复它 。
如果需要恢复整个已删除的单元格,请按ESCZ或EDIT撤消删除单元格 。
结论
在本文中,我列出了使用Python和Jupyter notebook时收集的一些小提示 。我相信它们会对你有用,能让你有所收获 , 从而实现轻松编码!
关于用python函数分析和python函数总结的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读