Pandas库的DataFrame类型

本文的主要内容是基于中国大学mooc(慕课)中的“Python数据分析与可视化”课程进行整理和总结。
DataFrame类型由公用相同索引的一组列组成。
在这里插入图片描述
DataFrame 的多列数据共用同一列索引,是一个表格型的数据类型,每列值的数据类型可以不相同;
DataFrame既有行索引也有列索引,对于每一行的索引叫index,每一列的索引叫colum;
DataFrame可以用于表达二维数据,同时也能用于表达多维数据;
DataFrame类型可以由如下类型创建:

  • 二维ndarray对象;
a = pd.DataFrame(np.arange(10).reshape(2,5))
a

    0	1	2	3	4
0	0	1	2	3	4
1	5	6	7	8	9

可以看到,除了生成的0-9元素外,在纵向上自动生成了行索引,在横向上自动生成了列索引,自动生成的索引都是从0开始的整数。

  • 由一维ndarray/列表/字典/元组或Series类型;
b = {'one':pd.Series([1,2,3],index=['a','b','c']),
    'two':pd.Series([4,5,6,7],index=['a','b','c','d'])}
bd = pd.DataFrame(b)
bd

	one	two
a	1.0	4
b	2.0	5
c	3.0	6
d	NaN	7

可以看到,字典中的键自从变成了自定义的列索引,在字典中的每一个元素对应了DataFrame的一列,key称为那一列索引的名字,当字典中两个Series类型对应的索引不一致时,生成的DataFrame会自动添加NaN(空值)

pd.DataFrame(bd,index=['b','c'],columns=['two','three'])

	two	three
b	5	NaN
c	6	NaN

可以发现 ,数据会根据行列索引自动补齐。
还能通过列表类型的字典创建:

c = {'one':[1,2,3,4],
    'two':[9,8,7,6]}
pd.DataFrame(c,index=['a','b','c','d'])

	one	two
a	1	9
b	2	8
c	3	7
d	4	6
  • Series类型
  • 其他的DataFrame类型

下面根据图片信息创建DataFrame类型。
在这里插入图片描述

d = {'城市':['北京','上海','广州','深圳','沈阳'],
    '环比':[101.5,101.2,101.3,100.9,100.5],
    '同比':[120.7,120.6,120.1,119.5,120.1],
    '定基':[121.4,122.5,122.4,1210,122.3]}
pd.DataFrame(d,index=['c1','c2','c3','c4','c5'])

	城市	环比	同比	定基
c1	北京	101.5	120.7	121.4
c2	上海	101.2	120.6	122.5
c3	广州	101.3	120.1	122.4
c4	深圳	100.9	119.5	1210.0
c5	沈阳	100.5	120.1	122.3
d.index
Index(['c1', 'c2', 'c3', 'c4', 'c5'], dtype='object')
d.columns
Index(['城市', '环比', '同比', '定基'], dtype='object')
d.values

array([['北京', 101.5, 120.7, 121.4],
       ['上海', 101.2, 120.6, 122.5],
       ['广州', 101.3, 120.1, 122.4],
       ['深圳', 100.9, 119.5, 1210.0],
       ['沈阳', 100.5, 120.1, 122.3]], dtype=object)

我们可以通过使用如下方法获得DataFrame其中的元素。

d['同比']
c1    120.7
c2    120.6
c3    120.1
c4    119.5
c5    120.1
Name: 同比, dtype: float64
d.ix['c1']
城市       北京
环比    101.5
同比    120.7
定基    121.4
Name: c1, dtype: object
d['同比']['c1']
120.7
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值