pandas学习笔记-DataFrame(2)

另一种常见的数据形式是嵌套字典(也就是字典的字典):

pop = {'Nevada':{2001:2.4,2002:2.9},
       'Ohio'  :{2000:1.5,2001:1.7,2002:3.6}}

如果将它传给DataFrame,它就会被解释为:外层字典的键作为列,内层键则作为行索引:

frame3 = pd.DataFrame(pop)
print frame3
输出结果
      Nevada  Ohio
2000     NaN   1.5
2001     2.4   1.7
2002     2.9   3.6

当然,也可以对该结果进行转置:

print frame3.T
输出结果
        2000  2001  2002
Nevada   NaN   2.4   2.9
Ohio     1.5   1.7   3.6

内层字典的键会被合并、排序以形成最终的索引。如果显式指定了索引,则不会这样:

frame4 = pd.DataFrame(pop,index=[2001,2002,2003])
print frame4
输出结果
      Nevada  Ohio
2001     2.4   1.7
2002     2.9   3.6
2003     NaN   NaN

由Series组成的字典差不多也是一样的用法:

pdata = {'Ohio':frame3['Ohio'][:2],
         'Nevada':frame3['Nevada'][:2]}
frame4 = pd.DataFrame(pdata)
print frame4
      Nevada  Ohio
2000     NaN   1.5
2001     2.4   1.7

如果设置了DataFrame的index和column的name属性,则这些信息也会被显示出来:

frame3.index.name = 'year'
frame3.columns.name = 'state'
print frame3
输出结果
state  Nevada  Ohio
year               
2000      NaN   1.5
2001      2.4   1.7
2002      2.9   3.6

跟Series一样,values属性也会以二维ndarray的形式返回DataFrame中的数据:

print frame3.values
输出结果
[[ nan  1.5]
 [ 2.4  1.7]
 [ 2.9  3.6]]

如果DataFrame各个列的数据类型不同,则值数组的数据类型就会选用能兼容所有列的数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值