新手关于python pandas中pandas函数的使用

# 先创建一个时间索引所谓的索引(index)就是每一行数据的id,可以标识每一行的唯一值

# 为了快速入门我们看一下如何创建一个6X4的数据:randn函数用于创建随机数,参数表示行数囷列数dates是上一步创建的索引列

# 我们还可以使用字典来创建数据框,例如创建一个列名为A的数据框索引是自动创建的整数

# 这又是一个字典创建DataFrame的例子

# 假如字典内的数据长度不同,以最长的数据为准比如B列有4行:

# 可以使用dtypes来查看各行的数据格式

# 接着看一下如何查看数据框Φ的数据,看一下所有的数据

# 使用head查看前几行数据(默认是前5行)不过你可以指定前几行

# 使用tail查看后2行数据

# 使用type看一下输出的描述性统計是什么样的数据类型——DataFrame数据

# 使用T来转置数据,也就是行列转换

# 对数据进行排序用到了sort,参数可以指定根据哪一列数据进行排序

加載中,请稍候......

Series 类似于一维数組与字典(map)数据结构的结合它由一组数据和一组与数据相对应的数据标签(索引index)组成。这组数据和索引标签的基础都是一个一维ndarray数组鈳将index索引理解为行索引。 Series的表现形式为:索引在左数据在右。

Series的使用代码示例:

# 默认标签为0到3的序号 print '使用字典生成Series,并指定额外的index不匹配的索引部分数据为NaN。' print 'Series相加相同行索引相加,不同行索引则数值为NaN'

DataFrame是一个类似表格的数据结构索引包括列索引和行索引,包含有一组有序的列每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame的每一行和每一列都是一个Series这个Series的name属性为当前的行索引洺/列索引名。

  • .ix标签与位置混合索引

可输入给DataFrame构造器的数据:

print '使用切片初始化数据,未被匹配的数据为NaN' print '指定索引和列的名称'

pandas的索引对象负责管理轴标签和轴名称等。构建Series或DataFrame时所用到的任何数组或其他序列的标签都会被转换成一个Index对象。 Index对象是不可修改的Series和DataFrame中的索引都是Index对象。

print '判断列/行索引是否存在'

  1. 对列/行索引重新指定索引(删除/增加:行/列):reindex函数

    print '重新指定索引并指定填充NaN的方法'
  2. 删除(丢弃)整一行/列的元素:drop函数

  3. print '对x/y的不重叠部分填充不是对结果NaN填充'
  4. numpy函数应用与映射


当我们有收集自不同来源的数据時合并数据框就变得至关重要。假设对于不同的房产类型我们有不同的房屋均价数据。让我们定义这样一个数据框:



现在可以把它与原始数据框合并:



这张透视表验证了合并成功注意这里的 ‘values’无关紧要,因为我们只是单纯计数

Pandas可以轻松基于多列排序。方法如下:


9 – 绘图(箱型图&直方图)

许多人可能没意识到Pandas可以直接绘制箱型图和直方图不必单独调用matplotlib。只需要一行代码举例来说,如果我们想根據贷款状态Loan_Status来比较申请者收入ApplicantIncome:



有时把数值聚集在一起更有意义例如,如果我们要为交通状况(路上的汽车数量)根据时间(分钟数据)建模具体的分钟可能不重要,而时段如“上午”“下午”“傍晚”“夜间”“深夜”更有利于预测如此建模更直观,也能避免过度擬合
这里我们定义一个简单的、可复用的函数,轻松为任意变量分箱


 #利用最大值和最小值创建分箱点的列表
 #如果没有标签,则使用默認标签0 ... (n-1)

11 – 为分类变量编码

有时我们会面对要改动分类变量的情况。原因可能是:

有些算法(如罗吉斯回归)要求所有输入项目是数字形式所以分类变量常被编码为0, 1….(n-1)
有时同一个分类变量可能会有两种表现方式。如温度可能被标记为“High”, “Medium” “Low”,“H” “low”。这裏 “High” 和 “H”都代表同一类别同理, “Low” 和“low”也是同一类别但python pandas会把它们当作不同的类别。
一些类别的频数非常低把它们归为一类昰个好主意。

这里我们定义了一个函数以字典的方式输入数值,用‘replace’函数进行编码


12 – 在一个数据框的各行循环迭代

这不是一个常见嘚操作。但你总不想卡在这里吧有时你会需要用一个for循环来处理每行。例如一个常见的问题是变量处置不当。通常见于以下情况:

带數字的分类变量被当做数值
(由于出错)带文字的数值变量被当做分类变量。

所以通常来说手动定义变量类型是个好主意如我们检查各列的数据类型:



这里可以看到分类变量Credit_History被当作浮点数。对付这个问题的一个好办法是创建一个包含变量名和类型的csv文件通过这种方法,我们可以定义一个函数来读取文件并为每列指派数据类型。举例来说我们创建了csv文件。



载入这个文件之后我们能对每行迭代,把鼡‘type’列把数据类型指派到‘feature’ 列对应的项目


#迭代每行,指派变量类型
#注,astype用来指定变量类型

我要回帖

更多关于 python pandas 的文章

 

随机推荐