cut函数python cut函数用法

如何用 Python 从海量文本抽取主题代码
我们在Jupyter Notebook中新建一个Python 2笔记本,起名为topic-model 。
为了处理表格数据,我们依然使用数据框工具Pandas 。先调用它 。
import pandas as pd
然后读入我们的数据文件datascience.csv,注意它的编码是中文GB18030,不是Pandas默认设置的编码,所以此处需要显式指定编码类型,以免出现乱码错误 。
df = pd.read_csv("datascience.csv", encoding='gb18030')
我们来看看数据框的头几行,以确认读取是否正确 。
df.head()
显示结果如下:
没问题,头几行内容所有列都正确读入,文字显式正常 。我们看看数据框的长度,以确认数据是否读取完整 。
df.shape
执行的结果为:
(1024, 3)
行列数都与我们爬取到的数量一致,通过 。
下面我们需要做一件重要工作——分词 。这是因为我们需要提取每篇文章的关键词 。而中文本身并不使用空格在单词间划分 。
我们首先调用jieba分词包 。
import jieba
我们此次需要处理的 , 不是单一文本数据 , 而是1000多条文本数据 , 因此我们需要把这项工作并行化 。这就需要首先编写一个函数 , 处理单一文本的分词 。
def chinese_word_cut(mytext):
return " ".join(jieba.cut(mytext))
有了这个函数之后 , 我们就可以不断调用它来批量处理数据框里面的全部文本(正文)信息了 。你当然可以自己写个循环来做这项工作 。
下面这一段代码执行起来 , 可能需要一小段时间 。请耐心等候 。
df["content_cutted"] = df.content.apply(chinese_word_cut)
执行过程中可能会出现如下提示 。没关系 , 忽略就好 。
Building prefix dict from the default dictionary ...
Loading model from cache /var/folders/8s/k8yr4zy52q1dh107gjx280mw0000gn/T/jieba.cache
Loading model cost 0.406 seconds.
Prefix dict has been built succesfully.
执行完毕之后,我们需要查看一下,文本是否已经被正确分词 。
df.content_cutted.head()
python制作分布图制作分布图类似密度图,在python中利用pandas来提取分布数据是比较方便的 。主要用到pandas的cut和groupby等函数 。
官方文档链接
主要参数为x和bins 。
x为数据源,数组格式的都支持,list,numpy.narray, pandas.Series 。
bins可以为int,也可以为序列 。
【cut函数python cut函数用法】 我们定义bins为一个序列,默认为左开右闭的区间:
对言值列按cats做groupby,然后调用get_stats统计函数 , 再用unstack函数将层次化的行索引“展开”为列 。
G2在之前的文章中有介绍 , 文章 《python结合G2绘制精美图形》。
一句话绘制出来,但具体的区间段难以区分出来 。
bokeh是python的一个优秀的绘图工具包,与pandas结合的比较好 。bokeh文档
作者原文链接: python制作分布图
Python pandas用法 在Python中,pandas是基于NumPy数组构建的,使数据预处理、清洗、分析工作变得更快更简单 。pandas是专门为处理表格和混杂数据设计的 , 而NumPy更适合处理统一的数值数组数据 。
使用下面格式约定,引入pandas包:
pandas有两个主要数据结构:Series和DataFrame 。
Series是一种类似于一维数组的对象,它由 一组数据 (各种NumPy数据类型)以及一组与之相关的 数据标签(即索引) 组成 , 即index和values两部分,可以通过索引的方式选取Series中的单个或一组值 。
pd.Series(list,index=[ ]),第二个参数是Series中数据的索引,可以省略 。
Series类型索引、切片、运算的操作类似于ndarray , 同样的类似Python字典类型的操作,包括保留字in操作、使用.get()方法 。
Series和ndarray之间的主要区别在于Series之间的操作会根据索引自动对齐数据 。
DataFrame是一个表格型的数据类型,每列值类型可以不同,是最常用的pandas对象 。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引) 。DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构) 。
pd.DataFrame(data,columns = [ ],index = [ ]) :columns和index为指定的列、行索引,并按照顺序排列 。
如果创建时指定了columns和index索引,则按照索引顺序排列,并且如果传入的列在数据中找不到,就会在结果中产生缺失值:
数据索引 :Series和DataFrame的索引是Index类型,Index对象是不可修改,可通过索引值或索引标签获取目标数据 , 也可通过索引使序列或数据框的计算、操作实现自动化对齐 。索引类型index的常用方法:
重新索引 :能够改变、重排Series和DataFrame索引,会创建一个新对象,如果某个索引值当前不存在,就引入缺失值 。
df.reindex(index, columns ,fill_value, method, limit, copy ) :index/columns为新的行列自定义索引;fill_value为用于填充缺失位置的值;method为填充方法 , ffill当前值向前填充,bfill向后填充;limit为最大填充量;copy 默认True,生成新的对象 , False时,新旧相等不复制 。
删除指定索引 :默认返回的是一个新对象 。
.drop() :能够删除Series和DataFrame指定行或列索引 。
删除一行或者一列时,用单引号指定索引,删除多行时用列表指定索引 。
如果删除的是列索引,需要增加axis=1或axis='columns'作为参数 。
增加inplace=True作为参数,可以就地修改对象 , 不会返回新的对象 。
在pandas中,有多个方法可以选取和重新组合数据 。对于DataFrame,表5-4进行了总结
适用于Series和DataFrame的基本统计分析函数 :传入axis='columns'或axis=1将会按行进行运算 。
.describe() :针对各列的多个统计汇总 , 用统计学指标快速描述数据的概要 。
.sum() :计算各列数据的和
.count() :非NaN值的数量
.mean( )/.median() :计算数据的算术平均值、算术中位数
.var()/.std() :计算数据的方差、标准差
.corr()/.cov() :计算相关系数矩阵、协方差矩阵 , 是通过参数对计算出来的 。Series的corr方法用于计算两个Series中重叠的、非NA的、按索引对齐的值的相关系数 。DataFrame的corr和cov方法将以DataFrame的形式分别返回完整的相关系数或协方差矩阵 。
.corrwith() :利用DataFrame的corrwith方法,可以计算其列或行跟另一个Series或DataFrame之间的相关系数 。传入一个Series将会返回一个相关系数值Series(针对各列进行计算),传入一个DataFrame则会计算按列名配对的相关系数 。
.min()/.max() :计算数据的最小值、最大值
.diff() :计算一阶差分,对时间序列很有效
.mode() :计算众数,返回频数最高的那(几)个
.mean() :计算均值
.quantile() :计算分位数(0到1)
.isin() :用于判断矢量化集合的成员资格,可用于过滤Series中或DataFrame列中数据的子集
适用于Series的基本统计分析函数 , DataFrame[列名]返回的是一个Series类型 。
.unique() :返回一个Series中的唯一值组成的数组 。
.value_counts() :计算一个Series中各值出现的频率 。
.argmin()/.argmax() :计算数据最大值、最小值所在位置的索引位置(自动索引)
.idxmin()/.idxmax() :计算数据最大值、最小值所在位置的索引(自定义索引)
pandas提供了一些用于将表格型数据读取为DataFrame对象的函数 。下表对它们进行了总结,其中read_csv()、read_table()、to_csv()是用得最多的 。
在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换以及重塑 。
在许多数据分析工作中,缺失数据是经常发生的 。对于数值数据,pandas使用浮点值NaN(np.nan)表示缺失数据,也可将缺失值表示为NA(Python内置的None值) 。
替换值
.replace(old, new) :用新的数据替换老的数据,如果希望一次性替换多个值,old和new可以是列表 。默认会返回一个新的对象,传入inplace=True可以对现有对象进行就地修改 。
删除重复数据
利用函数或字典进行数据转换
df.head():查询数据的前五行
df.tail():查询数据的末尾5行
pandas.cut()
pandas.qcut() 基于分位数的离散化函数 。基于秩或基于样本分位数将变量离散化为等大小桶 。
pandas.date_range() 返回一个时间索引
df.apply() 沿相应轴应用函数
Series.value_counts() 返回不同数据的计数值
df.aggregate()
df.reset_index() 重新设置index,参数drop = True时会丢弃原来的索引,设置新的从0开始的索引 。常与groupby()一起用
numpy.zeros()
关于cut函数python和cut函数用法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读