Pandas入门-数据结构Series和DataFrame

本文回顾了如何使用Python的pandas库进行数据分析,包括Series的基本概念、创建方法、缺失值处理,以及DataFrame的定义、构造、列操作和索引选取。重点介绍了Series和DataFrame这两种核心数据结构的应用和实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是对《利用Python进行数据分析》的pandas内容的一个回顾性总结,将围绕下面目录进行展开。 

目录

Series

DataFrame


Series

定义

Series是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及与之相关的数据标签(即索引)组成。  
对于Series,无论是否显示创建了索引,pandas都会自动创建一个0到N-1的整数索引
 例子

obj2=Series([4,7,-5,3],index=['d','b','a','c'])
print(obj2['d']) # 指定索引的取值
print(obj2[:2]) # 利用整数索引的取值

 输出
4
d    4
b    7

缺失数据

当指定了索引却无法找到匹配值时,默认会用NaN来作为缺失值填充。例子

sdata={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
states=['California','Ohio','Oregon','Texas'] #  
obj4=Series(sdata,index=states) # 这个是按照index里对应的states的值来,对于sdata里面没有对应index,则给states里对应的key赋值NaN 了
print(obj4)  

输出 :
California        NaN
Ohio          35000.0
Oregon        16000.0
Texas         71000.0
dtype: float64

 

DataFrame

定义
    DataFrame是一个表格型的数据结构,它含有一组有序的序列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,可以看成是由Series组成的字典(共用同一个索引)。 类似Series,都会自动加上整数索引。 
 例子

data={'state':['ohio','Ohio','Ohio','Nevada','Nevada'],
     'year':[2000,2001,2002,2001,2002],
     'pop':[1.5,1.7,3.6,2.4,2.9]}
frame=DataFrame(data)
print(frame)

  输出
    pop   state  year
0  1.5    ohio  2000
1  1.7    Ohio  2001
2  3.6    Ohio  2002
3  2.4  Nevada  2001
4  2.9  Nevada  2002

构造函数能接受的数据列表

取值
    按选取的列排序
   如要求各列按year,state,pop的顺序排列

 DataFrame(data,columns=['year','state','pop']) #可以columns中指定列的排列的顺序

    取某列的值可以用data['columnA'] 的方式也可以用data.columnA 
    给列赋值,三种需要注意的情况
         

frame2['debt']=16.5 # 这个单个值时会通过”广播“给整个列都赋值同一个值
print(frame2)
frame2['debt']=np.arange(5.) #将列表或者数组 赋值给某个列时,注意需要同这列的长度一样
print(frame2)
print('\n')
val=Series([-1.2,-1.5,-1.7],index=['two','four','five'])
frame2['debt']=val  # 如果给某列赋值的是一个Series,则会相当于将这列原来的值全部删除,然后精确匹配索引给对应的值,对于给的Series中没有值的情况,则会赋值为NaN (注意 并不会保留原来的值)!!!。
print("赋值一个Series给存在的列\n{}".format(frame2))
frame2['dd']=val # 对于原本不存在的列,则其实也相当于给存在的列赋值一样,也是重新给值,不存在的值的索引则给NaN 
print("赋值一个Series给 本不 存在的列\n{}".format(frame2)) 

 
列的删除
        del 列a, 例子    

 # 列的 删除用 del
del frame2['estern']

 选取行
        

print(frame2.ix['three']  # dataframe的行可以通过位置或名称的方式进行获取,比如用索引字段ix )
print(frame2.loc['three'] )# loc for label based indexing  即字符串类型类似label的index
print(frame2.iloc[2] )# 整型的index,这个是用于取数据的时候用,虽然在表中实际并不存在,2即第2+1行

参考与鸣谢:

《利用python进行数据分析》
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值