利用python进行数据分析学习笔记-Pandas篇

无论如何,坚持啊!

pandas的数据结构


Series

obj = Series([]) #产生一个Series
obj = Series({})#可以通过引入一个dict来创建一个Series

包括values和index两个属性,而values和index都有一个name属性
用NA表示缺失的数据,isnull,notnull用于判断


Dataframe

data = Dataframe(np.arange(16).reshape(4,4))  #或者传入一个由等长列表或Numpy数组组成的dict
frame2 = Dataframe(data,columns=[],index=[])
frame2[]或者frame2.#通过字典标记或者属性的方式,获取Dataframe的列
frame.ix[]索引字段

为不存在的列赋值会创建出新列,

del frame2[]   #del用以删除列

以上索引返回的只是视图而非副本,若要创建副本,用.copy


索引对象

index,不可修改

  • Index
  • int64Index
  • MultiIndex
  • DatetimeIndex
  • PeriodIndex
    每个索引都有一些方法和属性,不在赘述

Series,Dataframe的基本功能

重新索引

reindex创建一个重新索引的新对象

若某个索引值当前不存在,就引入缺失值
可以通过method:ffill或bfill插值,fill_vale= 0等指定插入值

frame.reindex(index=[],method='ffill',columns=[])#索引可以同时按行和列改变,插值只能按行应用

reindex的函数

  • method
  • fill_value
  • limit #限定最大填充量
  • level 在MultiIndex的指定级别上匹配简单索引,否则取其子集
  • copy
丢弃指定轴上的项
data.drop([],axis=1)         #axis=1表示删除列,否则默认为axis=0删除行,[]为index或column中元素
索引,选取和过滤
  • Series上索引,obj[…]
  • DataFrame上索引,data.ix[]
  • data.icol选取单列 data.irow选取单行
  • get_value,set_value 根据行列标签选取单个值
    利用标签的切片运算包括右边界
算术运算和数据对齐
  • add
  • sub
  • div
  • mul
    运算时遵循取索引并集的原则,在不重叠的索引处引入NA,可以通过fill_value指定填充值
    DataFrame和Series的运算为广播,默认将Series的索引匹配到DataFrame的列,沿行广播,如果不完全对应,将形成并集
    使用0值表示沿着每一列或行标签\索引值向下执行方法,使用1值表示沿着每一行或者列标签模向执行对应的方法
    这里写图片描述
函数应用和映射

Numpy中的ufunc可以用于pandas对象

np.abs(frame)

另一种操作

frame.apply(f,axis=1)
排序和排名
#对行或列索引进行命名,采用sort_index方法
frame.sort_index(axis=o/1,ascending=False#默认为升序)
frame.sort_index(by ['b','c'])
按值对Series排序,用order

排名rank()方法会增设一个排名值,为各组分配一个平均排名

  • average#为各个值平均分配排名
  • min #使用整个分组的最小排名
  • max
  • first 按在原始数据中出现的顺序分配排名
带有重复值的轴索引

某个索引对应多个值,则返回一个Series,对应单个值则返回一个标量值

汇总和计算描述统计
相关系数和协方差

corr计算两个Series中重叠的,非NA的,按索引对齐的值的相关系数,cov用于计算协方差

唯一值,值计数以及成员资格
uniques = obj.unique()#返回一个唯一值数组
obj.value_counts() #计算各个值出现的频率
obj.isin[]

处理缺失数据

python内置的none也被作为NA处理

  • dropna
  • fillna
  • isnull
  • notnull
滤除缺失数据

对于Series,dropna返回一个仅含非空数据的Series,对于DataFrame,丢弃任何含有缺失值的行,传入how=‘all’将只丢弃全为NA的行

data.dropna(how='all')
df.dropna(thresh=3)#一行中至少有三个NAN时保留
填充缺失数据
df.fillna(0)
df.fillna({1:0.5,3:-1})
df.fillna(method=)

fillna返回新对象,inplace=true时对现有对象进行就地修改

层次化索引

重排分级顺序
df.swaplevel(,)
df.sortlevel(1)#按1排序
根据级别汇总统计
frame.sum(level='key2')
frame.sum(level='color')
使用Dataframe的列
df.set_index([],drop=)#默认这些列会被移除
df.reset_index()#层次化索引被转移到列里面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习数据分析是当代信息时代的一项重要技能,Python作为一种强大的编程语言,是数据分析的热门工具之一。以下是我在学习利用Python进行数据分析过程中的一些笔记。 首先,学习Python的基础知识是必不可少的。了解Python的基本语法、数据类型、循环和条件语句等知识对于数据分析的学习非常重要。我通过自学网课和阅读相关书籍,逐渐掌握了Python的基础知识。 其次,学习使用Python的数据分析库。在Python中,有很多强大的数据分析库,例如NumPy、Pandas和Matplotlib等。我通过学习这些库的用法,掌握了数据的处理、清洗、分析和可视化的技巧。我学习了如何使用NumPy进行矩阵运算和数值计算,如何使用Pandas进行数据处理和数据操作,以及如何使用Matplotlib进行数据可视化。 除了数据分析库,学习Python的机器学习库也是必不可少的。机器学习在数据分析中扮演着重要角色,Python中有很多优秀的机器学习库,例如Scikit-learn和TensorFlow。我通过学习这些库的使用,了解了机器学习的基本概念和常用算法,例如回归、分类和聚类等。我也学习了如何使用这些库来构建和训练机器学习模型。 最后,实践是学习的关键。在学习的过程中,我通过实践项目来巩固所学知识。我选择了一些真实的数据集,并运用Python的数据分析技术进行数据处理、分析和可视化。通过实践,我不仅掌握了数据分析的具体步骤和方法,还锻炼了自己解决实际问题的能力。 总的来说,学习利用Python进行数据分析需要掌握Python的基础知识、数据分析库和机器学习库的使用,同时也需要通过实践项目来巩固所学知识。这个过程需要持续不断的学习和实践,但是通过不断的努力和实践,我相信能够掌握Python进行数据分析的技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值