pandas中的Series和DataFrame

  1.Series介绍及创建

  Series是一种类似与一维数组的对象,由下面两个部分组成:

  values:一组数据(ndarray类型)

  index:相关的数据索引标签

  创建Series的两种方式:

  第一种:由列表或numpy数组创建:

  s1 =Series([11,22,33,44,55],index=['a1','b1','c1','d1','e1'],name='Hello world')

  print(s1)

  运行结果:

  a1 11

  b1 22

  c1 33

  d1 44

  e1 55

  Name: Hello world, dtype: int64

  a1 = np.array([11,22,33,44,55])

  s2 = Series(a1,index=['a1','b1','c1','d1','e1'],name='hello series')

  print(s2)

  运行结果:

  a1 11

  b1 22

  c1 33

  d1 44

  e1 55

  Name: hello series, dtype: int32

  第二种:由字典创建,不存在index参数设置,但是依然存在默认索引(数据源必须为一维数据)

  dict = {'hello':12,'series':30}

  s3 = Series(data=dict)

  print(s3)

  运行结果:

  hello 12

  series 30

  dtype: int64

  2.DataFrame的介绍及创建

  DataFrame具有标记轴(行和列)的二维大小可变,可能异构的表格数据结构

  算术运算在行标签和列标签上对齐

  可以被认为是Series对象的类似dict的容器

  是pandas的主要数据结构

  创建DataFrame的4种方式:

  1.使用字典创建DataFarme

  dicts = {"tag1": [90, 22, 66],'tag2': [12, 33, 66]}

  d1 = DataFrame(data=dicts, index=['a', 'b', 'c'])

  print(d1)

  运行结果:

  tag1 tag2

  a 90 12

  b 22 33

  c 66 66

  2.使用ndarray创建DataFrame

  d2 = DataFrame(data=np.random.randint(0,100,size=(3,6)),index=["one","two","three"],columns=["a","b","c","d","e","f"])

  print(d2)

  运行结果:无锡人流医院 http://xmobile.wxbhnk120.com/

  a b c d e f

  one 62 74 51 29 98 18

  two 16 16 44 3 64 72

  three 42 94 46 60 34 59

  3.隐式构造

  最常见的方法是给DataFrame构造函数的index或者columns参数传递两个或更多的数组(如下另个列的标签数组)

  d3 = DataFrame(data=np.random.randint(0, 100, size=(2, 4)), index=['x', 'y'], columns=[['a', 'b', 'c', 'd'], ['q1', 'q2', 'q3', 'q4']])

  print(d3)

  运行结果:

  a b c d

  q1 q2 q3 q4

  x 47 26 11 8

  y 40 76 18 9

  4.显示构造

  使用pd.MultiIndex.from_arrays数组方式

  创建了一个索引对象,该索引对象为二层索引

  indexObj = pd.MultiIndex.from_arrays([['q1', 'q2', 'q3', 'q1'], ['a', 'b', 'c', 'd']])

  d4 = DataFrame(data=np.random.randint(0, 100, size=(2, 4)), index=['x', 'y'], columns=indexObj)

  print(d4)

  运行结果:

  q1 q2 q3 q1

  a b c d

  x 85 72 43 4

  y 8 43 55 68