前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python pandas 基础之一

python pandas 基础之一

作者头像
小末快跑
发布2019-07-03 17:38:39
1.3K0
发布2019-07-03 17:38:39
举报
文章被收录于专栏:日常撸知识日常撸知识

pandas的两大数据结构:Series和DataFrame. Series用于储存一个序列一样的一维数据;DataFrame用于多维数据。

一. Series: 跟数组numpy类似,多了一些额外的功能。主数组的每个元素都有一个与之相关的标签,存储在Index里。

import pandas as pd

import numpy as np

s=pd.Series([12,2,3,4])

声明Series时,若不指定标签,默认从0开始。也可以指定标签。

s=pd.Series([12,3,4,5],index=['a','b','b','d'])

a=np.array([1,2,4,5])

b=pd.Series(a)

查看index和values:

s.index

s.values

元素引用:s[2], s['c'], s[0:3], s[['b','c']]

元素赋值:s[0]=3, s[3]=5, s['c']='abc'

筛选元素:

s[s>3],

数学运算:

s/2, s*3, s+2, np.log(s)

去重unique():

s.unique(),返回一个去重后的元素。

value_counts(), 返回各个不同的元素,并计算元素在Series中的个数。

isin(), 用来判断所属关系,判断给定的一列元素是否包含在Series数据结构中。isin()返回布尔值。

s.isin([1,3])

NaN: 数据结构中如果字段为空或者不符合数字的定义时,用NaN表示。

s=pd.Series([1,2,3,4,np.NaN,5])

isnull()和notnull()用来判断NaN元素,返回布尔值。在通过布尔值可以取出不为空的值或者空值。

s[s.notnull()或者s[s.isnull()]

将字典转化为Series数据结构:

ding={'name':'ding','age':23,'location':'CD'}

s=pd.Series(ding)

将列表作为index传给Series

colors=['red','green','blue','yellow']

s=pd.Series(ding, index=colors)

Series对象之间的运算:只对index标签相同的元素进行运算得到一个新的Series对象。它能够通过标签对齐,其中标签不一致的值为NaN

二. pandas: 数据结构跟excel类似,类似于将Series使用场景应用的多维。各列的数据结构可以是不同类型的。

定义方法:通常通过传递一个dict字典对象来构造。

data={('colors':[],'object':[],'price':[])}

frame=pd.DataFrame(data)

也可以只选取data中的部分数据来构造DataFrame()

frame=pd.DataFrame(data, columns=['object','price'])

如果没有指定index标签,会自动从0开始,指定标签。也可以指定特定的标签.

frame=pa.DataFrame(data, index=['one','two', 'three','four'])

选取元素:

选取所有列的名称:frame.columns

获取索引的列表:frame.index

获取所有的元素:frame.values

获取一列,用列名称即可:frame['price'],返回一个Series对象

另一种获取列的方法:frame.price

获取一行的数据:frame.ix[3]

获取多行:frame.ix[[1,2,5]]

获取多行:frame.in[0:5]

获取某一个元素,需要指定列名称和行名称:frame['price'][4]

赋值:

用name属性为index和columns指定名字

frame.index.name='id'

frame.columns.name='item'

添加一列:

frame['new']=12

frame['new']=[23,45,67]

修改某一列的值类似。

用Series给某一列赋值:

ser=pd.Series(np.arange(4))

frame['new']=ser

isin()原属所属关系,和Series方法类似:

frame.isin([1,'pen'])

返回布尔值。

frame(frame.isin([1,'pen']))得到一个新的DataFrame,包含满足条件的值,其他值为NaN.

删除一列:

del frame['new']

筛选:

frame[frame>4],大于4的值返回,其他值为空。

转置:frame.T

用嵌套字典生成DataFrame对象,pandas会将外部的键当作列名称,将内部的键当作index索引。

book={‘red’:{2000:22,34,56},'blue':{2012:23,45,12},'white':{2034:123,345,567}}

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小末快跑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档