python下的Pandas中DataFrame基本操作(二),DataFrame、dict、array构造简析

DataFrame简介:

  DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。跟其他类似的数据结构相比(如R的data.frame),DataFrame中面向行和面向列的操作基本上是平衡的。其实,DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)。

导入基本python库:

import numpy as np import pandas as pd

DataFrame构造:

  1:直接传入一个由等长列表或NumPy数组组成的字典;

dict = {
    "key1": value1;
    "key2": value2;
    "key3": value3;

}

 注意:key 会被解析为列数据,value 会被解析为行数据。

 >>> data = {
...     'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
...     'year': [2000, 2001, 2002, 2001, 2002],
...     'pop': [1.5, 1.7, 3.6, 2.4, 2.9]
... }

>>> pd.DataFrame(data)
   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

主动指定列排序方式:

pd.DataFrame(data, columns=['year', 'state', 'pop'])
   year   state  pop
0  2000    Ohio  1.5
1  2001    Ohio  1.7
2  2002    Ohio  3.6
3  2001  Nevada  2.4
4  2002  Nevada  2.9

 此处 0-1位自动生成的列索引,当然了也可以主动指定。

pd.DataFrame(data, columns=['year', 'state', 'pop'], index=['one', 'two', 'three', 'four', 'five'])
       year   state  pop
one    2000    Ohio  1.5
two    2001    Ohio  1.7
three  2002    Ohio  3.6
four   2001  Nevada  2.4
five   2002  Nevada  2.9

需要注意的是:将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配!!否则会报ValueError。

pd.DataFrame(data, columns=['year', 'state', 'pop'], index=['one', 'two', 'three', 'four']) 
ValueError: Shape of passed values is (3, 5), indices imply (3, 4)

2:传入一个由嵌套的字典;

  它就会被解释为:外层字典的键作为列,内层键则作为行索引。

>>> dict = {
...     "key1": {
...         "subkey1": 1,
...         "subkey2": 2,
...         "subkey3": 3,
...     },
...     "key2": {
...         "subkey1": 4,
...         "subkey2": 5,
...         "subkey3": 6,
...     },
...     "key3": {
...         "subkey1": 7,
...         "subkey2": 8,
...         "subkey3": 9,
...     },
... }
>>> pd.DataFrame(dict)
         key1  key2  key3
subkey1     1     4     7
subkey2     2     5     8
subkey3     3     6     9

请务必保证嵌套字典的key的一致性,不然的话,数据会异常,但不会显式的报错,而是显示出NaN,

>>> dict = {
...     "key1": {
...         "subkey1111111111111111": 1,
...         "subkey2": 2,
...         "subkey3": 3,
...     },
...     "key2": {
...         "subkey1": 4,
...         "subkey2": 5,
...         "subkey3": 6,
...     },
...     "key3": {
...         "subkey1": 7,
...         "subkey2": 8,
...         "subkey3": 9,
...     },
... }
>>> pd.DataFrame(dict)
                        key1  key2  key3
subkey1                  NaN   4.0   7.0
subkey1111111111111111   1.0   NaN   NaN
subkey2                  2.0   5.0   8.0
subkey3                  3.0   6.0   9.0

3:传入一个二维nd.array;

>> s = [[1,2],[3,4]]
>>> np.array(s)
array([[1, 2], 
     [3, 4]])
>>> pd.DataFrame(np.array(s))

0 1 0 1 2 1 3 4

 当然了你也可以主动指定行和列索引(不赘述):

>>> pd.DataFrame(np.array(s),index=['one', 'two'], columns=['year', 'state'])
     year  state
one     1      2
two     3      4

 4:传入其他的数据(初始化方式基本类似);

 参考资料:《利用Python进行数据分析》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LhWorld哥陪你聊算法

Hadoop源码篇--Reduce篇

Reduce文件会从Mapper任务中拉取很多小文件,小文件内部有序,但是整体是没序的,Reduce会合并小文件,然后套个归并算法,变成一个整体有序的文件。

30310
来自专栏一个会写诗的程序员的博客

禅与 JavaScript 编程艺术, Zen and The Art of JavaScript Programming禅与 JavaScript 编程艺术

Zen and The Art of JavaScript Programming

13410
来自专栏Jerry的SAP技术分享

使用com.sun.imageio.plugins.png.PNGMetadata读取图片的元数据

所谓图片元数据,就是除了我们肉眼看到的图片内容外,隐藏在这些内容背后的一些技术数据。

19240
来自专栏码匠的流水账

聊聊storm的WindowedBolt

storm-2.0.0/storm-client/src/jvm/org/apache/storm/topology/IWindowedBolt.java

26240
来自专栏Hongten

python开发_calendar

如果你用过linux,你可能知道在linux下面的有一个强大的calendar功能,即日历

14420
来自专栏Albert陈凯

2018-04-17 Java的Collection集合类3分钟搞掂Set集合前言

3分钟搞掂Set集合 前言 声明,本文用的是jdk1.8 现在这篇主要讲Set集合的三个子类: HashSet集合 A:底层数据结构是哈希表(是一个元素为链...

31370
来自专栏简书专栏

Pandas入门

标题中的英文首字母大写比较规范,但在python实际使用中均为小写。 2018年8月2日笔记 建议读者安装anaconda,这个集成开发环境自带了很多包。 ...

26550
来自专栏软件开发 -- 分享 互助 成长

CRC校验码

循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明...

33860
来自专栏前端说吧

正则表达式验证汇总

一、收集1  (转自https://blog.csdn.net/jumtre/article/details/13775351)

13710
来自专栏恰童鞋骚年

数据结构基础温故-6.查找(上):基本查找与树表查找

只要你打开电脑,就会涉及到查找技术。如炒股软件中查股票信息、硬盘文件中找照片、在光盘中搜DVD,甚至玩游戏时在内存中查找攻击力、魅力值等数据修改用来作弊等,都要...

15930

扫码关注云+社区

领取腾讯云代金券