YS_20190805_Python

Numpy中Pandas的相关内容

Series

Series条难过下标index可以获取值,并且Series市创建一个一维数组。

  1. 在pandas里面下标索引一般叫数据标签(在AI、Pythoin、数据分析、大数据、数据挖掘的核心标签)部分数据的大小,一行数据或者海量数据都可以通过数据标签获取。----->因此在企业中大量使用
  2. Series只能创建一维数组。如果想创建二维数组,那么就必须导入numpy模块,利用np.array(多维数组)—形成维度空间—矩阵
  3. ser03.index=[u’数学’,u’语文’,u’化学’,u’英语’] #u其实是series里面的一个标识符关键字,和索引的位置是一样—操作大量使用
  4. ser04=pd.Series(data=[100,89,90,99],dtype=np.float64,index=[‘数学’,‘语文’,‘化学’,‘英语’])# series里面有4个参数。
获取Series的值的几种方式
  1. 通过方括号+索引的方式读取对应索引的数据,有可能返回多条数据: [] +index。
ser01.index=['a','b','c','d']   
print(ser01['a'])

备注: 直接通过index获取数据。快速。但是直接操作index 是对数据不安全的!—结合实际情况使用(例如:经理要在10分钟之内完成海量数据的读取操作,不在进行其他数据的操作《update、alter、insert》,可以利用index读取
2. 通过 [] +index。

 sr07=pd.Series(['a','b','c','d'])
 print(ser07(0))

备注: 如果要进行数据的 CRUD操作!建议使用[] +index方法

  1. 通过numpy的ndarray的切片操作机制,方括号 [] +下标值/索引值+冒号(:)的形式来截取series对象中的一部分
 ser = pd.Series([1,2,3,4])
 print(ser)
 ser.index=['a','b','c','d'] 
 print(ser[0:2])

备注: 通过切片可以获取指定维度、矩阵的值!

  1. 切片操作:
    print(ser01[0:2]) ----直接通过index
    print(ser01[‘a’:‘c’]) #切片 ----直接通过值
Series的运算:

Numpy 和 Python的运算符。series完全支持二者的运算符 “ + - * / ”等

缺失值检测:

什么是缺失值 ?======没有被赋值吧-----和赋值有点区别
什么区别?
i:没有被赋值—操作报空指针异常
ii:缺失-----程序不会报空指针异常。也不会报任何程序异常!但是会利用Na填充----js
iii:NaN是计算机语言里面处理缺失值的关键字!不要乱用!isnullnotnull两个函数可以用于在Series中检测缺失值,这两个函数的返回时一个布尔类型的Series
isnull表示的是字典里面有缺失值的判断。如果字典列表里面有缺失值,返回一个true,反之返回false 返回的是一个bool类型
notnull表示的是字典里面有缺失值的判断。如果字典列表里面有缺失值,返回一个false,反之返回true 返回的是一个bool类型

备注 : isnull 和 notnull 此处不是表示 “ ” null的思想!

ser13=([-1,-2,2,3,4,5])
print('没有运算之前的值:',ser13)

ser14=np.exp(ser13)   #exp属于numpy包
print('底数操作之后的值为',ser14)
#绝对值
ser15=np.fabs(ser13)
print('绝对值的值为',ser15)
#缺失值检测
ser16=({'1001':'a','1002':'b','1003':'d','1004':'e'})
print('检查缺失值之前的;',ser16)

ser17=pd.Series(ser16,index=['1001','1002','1008'])

print('检查缺失值之后的;',ser17)

# isnull
pd.isnull(ser17)
#isnotnull
pd.notnull(ser17)

结果:
在这里插入图片描述

Series的name属性:
  1. ser20=pd.Series({‘1001’:‘刘德华’,‘1002’:‘郭富城’,‘1003’:‘李易峰’,‘1004’:‘陈坤’})
    #ser20.name=‘明星’ -----直接调用name属性。不方便数据的阅读,不方便程序员去解析数据!不建议直接调用name属性!
  2. ser20.index.name=‘明星大咖’ -------利用index索引充当列名称,其实是非常正确的!因为键key对应的就是一个index.index属性的值在列的第一位置,行的第一行 、列的第一列======就是一个数据的title
    数据阅读起来很清晰,数据解析很明确!

DataFrame

假设有100万条数据,让你分析给客户 ,但是要知道数据肯定是客户读不懂的。此时需要程序员去手动将列、行名称重新命名。然后导出数据
(1):DataFrame 的 index 属性 和 columns属性一定使用~ (2):重置index的值 通过 df05.index=[‘王老师’,‘李老师’,‘赵老师’,‘陈老师’]
在字典里面,如果字典数据是一维数组。可以直接获取值~ 二维字典里面获取值得 时候需要将键和值分开,不然没有办法区分哪个是key、哪个是value

索引对象

什么是索引对象?
简答:其实索引对象就是不直接操作index,而是将index通过其他数据标签进行操作数据的完整过程!数据完全可以读写操作!
例如:index == key ====ser01=([‘one’,‘two’,‘Thtree’])
2. 索引对象可也可以利用面向对象的思想去理解----万物皆为对象—可以利用任何数据标签充当index—操作数据!

数据抓取

列数据抓取

  1. 可以直接通过列索引获取指定列的数据。例如 :df03.name---->等价于df03[‘姓名’] —列值
  2. 添加数据给列 。注意 :原始数据是几条,就匹配添加几条,如果新添加的数据大于元数据列数量,报数据大小不匹配,index not match
 df02['address']=['北京','香港','欧美']  #这是3条数据 
  1. 删除列数据 ,利用pop函数 例如:
#列删除
df02.pop('address') 
  1. 修改列数据 ,直接通过字段名称 赋值修改即可 。 #修改
df02['成绩']='一百分'
#通过index获取指定列的数据
df = pd.DataFrame([['tom',76],['gary',98],['john',44]],columns=[u'姓名',u'成绩'])
print(df.姓名)#等价于 df['姓名']
print(df)
# #给df添加一列数据
# df['add']=['北京','hongkong','EU']#给列添加数据,原数据十几条就匹配几条,如果大于原数据量,报错:数据大小不匹配
# print(df)

# #列数据删除  pop() 关键字
# print(df)
# df.pop('add')
# print(df)

# #列数据修改
# df['成绩'] = '100'
# print(df)

行数据抓取
如果需要获取指定行的数据的话,需要通过ix ()方法或者loc ()方法来获取对应行索引的行数据。

df = pd.DataFrame([['tom',76],['gary',98],['john',44]],columns=[u'姓名',u'成绩'])
print(df)
print(df.ix[1])
print(df.loc[0])
print(df.loc[2])
print(df.loc[0,'成绩'])

#添加行
df.loc[3] = ['lisi',100]
print(df)
df.loc[3]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值