pandas数据结构练习题(部分)

更多函数查阅http://pandas.pydata.org/pandas-docs/stable/10min.htmlimport pandas as pd#两种数据结构from pandas import Series,DataFrame

#Series由一组数据和一组索引组成# obj=Series([2,3,5,7,3,1])# print(obj)

#建立Series的时候指定索引# obj2=Series([1,2,3,4,5],index=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘])# # print(obj2)# print(obj2[‘a‘])#指定索引输出# print(obj2[[‘a‘,‘d‘]])#指定多个索引输出# print(‘a‘ in obj2)#判断索引‘a‘是否在Series中,输出值为bool类型# obj2.name=‘wolawola‘#设置name属性# print(obj2.name)#输出name属性# print(obj2.index.name)#输出索引的name属性

#字典数据类型创建Series# data={‘a‘:1000,‘b‘:2000,‘c‘:3000,‘d‘:4000}# s=Series(data)# print(s)

#Series进行运算# data={‘a‘:1000,‘b‘:2000,‘c‘:3000,‘d‘:4000}# s=Series(data)# print(s*2)

#关系映射,返回值是bool类型# data={‘a‘:1000,‘b‘:2000,‘c‘:3000,‘d‘:4000}# s=Series(data)# print(‘a‘ in s)

#分别创建index和value创建Series# dt=[1,2,3,4,5]# id=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘]# data=Series(dt,index=id)# print(data)

#判断是否为空值# data={‘a‘:1000,‘b‘:2000,‘c‘:3000,‘d‘:4000}# s=Series(data)# print(s.isnull)

#----------------------------------------------------#DataFrame

#字典数据类型创建DataFrame# data={‘state‘:[‘a‘,‘b‘,‘c‘,‘d‘],#       ‘year‘:[1991,1992,1993,1994],#       ‘pop‘:[6,7,8,9]}# frame=DataFrame(data)# frame=DataFrame(data,columns=[‘year‘,‘state‘,‘pop‘,‘age‘])#没有age,传入NaN值# print(frame)# # print(frame[‘year‘])#输出年份# # print(frame.state)# print(frame.columns)#输出列名# frame[‘age‘]=np.arange(4)#给age属性增加值# print(frame)

#嵌套字典:外层的键作为列,内层的键作为行索引# pop={‘a‘:{1:1000,2:2000},#      ‘b‘:{1:5000,3:3000,4:4000},#      }# frame=DataFrame(pop)# print(frame)# print(frame.T)#转置

#索引对象是不可以修改的,以下报错immutable# obj=Series(range(3),index=[‘a‘,‘b‘,‘c‘])# obj.index[1]=‘d‘# print(obj.index)

#reindex:重新索引,若值缺失则引入缺失值# obj=Series([23,4.5,-8,100],index=[‘b‘,‘c‘,‘a‘,‘d‘])# print(obj)# reind=obj.reindex([‘a‘,‘b‘,‘c‘,‘d‘,‘e‘])# print(reind)

#向前填充索引,从index=0开始,遇到index=3时将值变为4.5#range()中的值是填充的范围,即索引的取值区间# obj=Series([23,4.5,-8],index=[0,3,5])# reind=obj.reindex(range(9),method=‘ffill‘)#ffill或pad:向前填充,bfill或backfill向后填充# print(reind)

#修改行索引,列,或者两个都修改,则会重新索引# frame=DataFrame(np.arange(9).reshape([3,3]),index=[‘a‘,‘b‘,‘c‘],columns=[‘no.1‘,‘no.2‘,‘no.3‘])# print(frame)# fr=frame.reindex([‘a‘,‘b‘,‘c‘,‘d‘])# print(fr)

#drop:丢弃制定轴上的项# frame=DataFrame(np.arange(9).reshape([3,3]),index=[‘a‘,‘b‘,‘c‘],columns=[‘no.1‘,‘no.2‘,‘no.3‘])# new_frame=frame.drop(‘a‘)# new_frame2=frame.drop(‘no.1‘,axis=1)# print(new_frame)# print(new_frame2)

#DataFrame和bool一起使用# frame=DataFrame(np.arange(9).reshape([3,3]),index=[‘a‘,‘b‘,‘c‘],columns=[‘no.1‘,‘no.2‘,‘no.3‘])# print(frame>3)

#ix在DataFrame中# frame=DataFrame(np.arange(9).reshape([3,3]),index=[‘a‘,‘b‘,‘c‘],columns=[‘no.1‘,‘no.2‘,‘no.3‘])# f2=frame.ix[‘a‘,‘no.1‘]#两个参数,第一个是行,第二个是列# print(frame)# print(f2)#数据对齐# frame=DataFrame(np.arange(9).reshape([3,3]),index=[‘a‘,‘b‘,‘c‘])# frame2=DataFrame(np.arange(16).reshape([4,4]),index=[‘a‘,‘b‘,‘c‘,‘d‘])# print(frame+frame2)#重新索引frame,用frame2的列,所以会有空值,空值填0# frame=DataFrame(np.arange(9).reshape([3,3]),index=[‘a‘,‘b‘,‘c‘])# frame2=DataFrame(np.arange(16).reshape([4,4]),index=[‘a‘,‘b‘,‘c‘,‘d‘])# f=frame.reindex(columns=frame2.columns,fill_value=0)# print(f)#索引排序# frame=DataFrame(np.arange(8).reshape([2,4]),index=[‘three‘,‘one‘],columns=[‘a‘,‘d‘,‘c‘,‘b‘])# print(frame)# f1=frame.sort_index()# print(f1)# f2=frame.sort_index(axis=1)# print(f2)#Seriex ranking# s=Series([3,6,1,5,-1])# print(s.rank())#返回名次,从小到大# print(s.rank(ascending=False))#降序#DataFormat ranking# frame=DataFrame({‘b‘:[2.5,1.6,9.0],‘a‘:[4,7,5.7],‘c‘:[2,9,7]})# print(frame)# f1=frame.rank(axis=1)# print(f1)#DataFrame和Series之间的运算:每行依次相减# arr=np.arange(12).reshape([3,4])# rs=arr-arr[0]# print(rs)#DataFrame和Series之间算术运算会将Series的索引匹配到DataFrame的列,然后沿着行一直向下广播#describe# obj=Series([‘a‘,‘b‘,‘c‘,‘d‘])# print(obj)# print(obj.describe())#切分行和列# arr=np.arange(12).reshape([3,4])# df=DataFrame(arr,index=[‘a‘,‘b‘,‘c‘],columns=[‘no.1‘,‘no.2‘,‘no.3‘,‘no.4‘])# print(df)# print(df.iloc[1:3,2:4])#切分[1:3)行,[2:4)列
时间: 2024-11-09 00:14:08

pandas数据结构练习题(部分)的相关文章

十分钟入门pandas数据结构和索引

pandas数据结构和索引是入门pandas必学的内容,这里就详细给大家讲解一下,看完本篇文章,相信你对pandas数据结构和索引会有一个清晰的认识. 一.数据结构介绍 在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame.Series类似于numpy中的一维数组,除了通吃一维数组可用的函数或方法,而且其可通过索引标签的方式获取数据,还具有索引的自动对齐功能:DataFrame类似于numpy中的二维数组,同样可以通用numpy数组的函数和方法,而且还具有其他灵

pandas小记:pandas数据结构及基本功能

http://blog.csdn.net/pipisorry/article/details/18010307 pandas的数据 结构:Series.DataFrame.索引对象pandas基本功能:重新索引,丢弃指定轴上的项,索引.选取和过滤,算术运算和数据对齐,函数应用和映射,排序和排名,带有重复值的轴索引 Pandas介绍 pandas含有使数据分析工作变得更快更简单的高级数据结构和操作工具.它是基于NumPy构建的,让以NumPy为中心的应用变得更加简单. 通常建议你先学习NumPy,

【UOJ#228】基础数据结构练习题 线段树

#228. 基础数据结构练习题 题目链接:http://uoj.ac/problem/228 Solution 这题由于有区间+操作,所以和花神还是不一样的. 花神那道题,我们可以考虑每个数最多开根几次就会成1,而这个必须利用开根的性质 我们维护区间最大.最小.和.区间加操作可以直接做. 区间开方操作需要特殊考虑. 首先对于一个区间,如果这个区间的所有数取$x=\left \lfloor \sqrt{x} \right \rfloor$值一样,那么就可以直接区间覆盖. 分析上述过程,一个区间可以

Python3快速入门(十三)——Pandas数据结构

Python3快速入门(十三)--Pandas数据结构 一.Pandas数据结构简介 Pandas有三种主要数据结构,Series.DataFrame.Panel.Series是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象等),轴标签统称为索引(index).DataFrame是带有标签的二维数据结构,具有index(行标签)和columns(列标签).如果传递index或columns,则会用于生成的DataFrame的index或columns.Panel

pandas 学习(2): pandas 数据结构之DataFrame

DataFrame 类型类似于数据库表结构的数据结构,其含有行索引和列索引,可以将DataFrame 想成是由相同索引的Series组成的Dict类型.在其底层是通过二维以及一维的数据块实现. 1.  DataFrame 对象的构建 1.1 用包含等长的列表或者是NumPy数组的字典创建DataFrame对象 In [68]: import pandas as pd In [69]: from pandas import Series,DataFrame # 建立包含等长列表的字典类型 In [

pandas 学习(1): pandas 数据结构之Series

1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会使用默认索引(从0到N-1). # 引入Series和DataFrameIn [16]: from pandas import Series,DataFrame In [17]: import pandas as pd In [18]: ser1 = Series([1,2,3,4]) In [19

pandas数据结构和介绍第一天

pandans另种主要的数据结构Series和DateFranme 1,Series 仅由一组数据就而已产生简单的Series 2)Series 有index和values属性,表达索引对象 3)设置索引和取值 4)把数据存放到字典,也可以通过字典建立Series DataFrame 1,是一种表格行的数据结构,它包含一组有序的列,既有行索引也有列索引, 2,指定顺序排列 用columns 3,取值是可Series取值一样,这边多啦一个ix取值方式,主要是安装列索引来取值,赋值 4, · 4.D

1、pandas数据结构之Series——创建Series

一.pandas提供两个常用的数据结构: • Series• DataFrame  二.Series Series 类似于一维数组对象,它是由一组数据(不同数据类型)以及与之相关的(数据标签)索引组成,用于存储一行或者一列的数据,(类似于列表,但是有索引) 2.1.如何创建Series对象? 常见的创建Pandas对象的方式,都像这样的形式: pd.Series(data, index=index) 其中,index是一个可选参数,data参数支持多种数据类型 上边给出可以通过list.dict

数据结构练习题

1. 在一个单链表中p所指结点之前插入一个s (值为e)所指结点时,可执行如下操作:q=head;while (q->next!=p) q=q->next;s= new Node; s->data=e;q->next= ; //填空 s->next= ; //填空 2. 线性表的顺序存储结构是一种_A_的存储结构,而链式存储结构是一种_C_的存储结构.A.随机存取 B.索引存取 C.顺序存取 D.散列存取 3. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址_D_.