博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据分析之Pandas(三) DataFrame入门
阅读量:5290 次
发布时间:2019-06-14

本文共 2673 字,大约阅读时间需要 8 分钟。

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。

DataFrame有多种不同的创建方法:

  • Dict of 1D ndarrays, lists, dicts, or Series
  • 2-D numpy.ndarray
  • Structured or record ndarray
  • A Series
  • Another DataFrame

1. from dict of Series or dicts

DataFrame中的index与Series结构中的index是独立的。如果输入数据是一个嵌套的dict结构,系统首先会将内部的dict转化为Series。如果初始化时没有给列名赋值,列名将会默认为dict keys.

In [46]: d = {'one':pd.Series([1., 2., 3.], index=['a', 'b', 'c']), 'two':pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}In [47]: df = pd.DataFrame(d)In [48]: dfOut[48]:   one  twoa  1.0  1.0b  2.0  2.0c  3.0  3.0d  NaN  4.0In [49]: pd.DataFrame(d, index=['d', 'b', 'a'])Out[49]:   one  twod  NaN  4.0b  2.0  2.0a  1.0  1.0In [50]: pd.DataFrame(d, index=['d', 'b', 'a'], columns=['two', 'three'])Out[50]:   two threed  4.0   NaNb  2.0   NaNa  1.0   NaN

行标和列标都可以通过index和columns属性获得。

In [51]: df.indexOut[51]: Index([u'a', u'b', u'c', u'd'], dtype='object')In [52]: df.columnsOut[52]: Index([u'one', u'two'], dtype='object')

注:当一个column集合与dict数据同时初始化,此时column集合将取代dict数据中的key值成为DataFrame的列名。

2. from dict of ndarrays/lists

ndarrays长度必须都是一样的,如果index手动初始化,index的长度同样需要与ndarrays一样长。如果index没有手动给出,range(n-1)将默认初始化为index。

In [4]: d = {'one':[1, 2, 3, 4,], 'two':[4, 3, 2, 1,]}In [5]: pd.DataFrame(d)Out[5]:   one  two0    1    41    2    32    3    23    4    1In [6]: pd.DataFrame(d, index=['a', 'b', 'c', 'd'])Out[6]:   one  twoa    1    4b    2    3c    3    2d    4    1

3. from structured or record array

这种情况与dict of arrays一样。

In [7]: data = np.zeros((2,), dtype=[('A', 'i4'), ('B', 'f4'), ('C', 'a10')])In [8]: data[:] = [(1,2.,'Hello'), (2, 3., 'World')]In [9]: pd.DataFrame(data)Out[9]:   A    B      C0  1  2.0  Hello1  2  3.0  WorldIn [10]: pd.DataFrame(data, index=['first', 'second'])Out[10]:        A    B      Cfirst   1  2.0  Hellosecond  2  3.0  WorldIn [11]: pd.DataFrame(data, columns=['C', 'A', 'B'])Out[11]:       C  A    B0  Hello  1  2.01  World  2  3.0

4. from a list of dicts

In [12]: data2 = [{'a':1, 'b':2}, {'a':5, 'b':10, 'c':20}]In [13]: pd.DataFrame(data2)Out[13]:   a   b     c0  1   2   NaN1  5  10  20.0In [14]: pd.DataFrame(data2, index=['first', 'second'])Out[14]:        a   b     cfirst   1   2   NaNsecond  5  10  20.0In [15]: pd.DataFrame(data2, columns=['a', 'b'])Out[15]:   a   b0  1   21  5  10

5. from a Series

DataFrame的index与Series的index一致,如果没有其他column名称给出,DataFrame的column值与Series的一致。

In [16]: s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])In [17]: sOut[17]:a    1b    2c    3dtype: int64In [18]: pd.DataFrame(s, columns=['one'])Out[18]:   onea    1b    2c    3

其他DataFrame初始化和操作请参考

转载于:https://www.cnblogs.com/jinhaolin/p/5980932.html

你可能感兴趣的文章
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
opencv安装配置
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
6-1 并行程序模拟 uva210
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
《算法》C++代码 快速排序
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>
Js apply方法与call方法详解 附ES6新写法
查看>>
linux php全能环境一键安装,小白福利!
查看>>
Note(2): 一个JavaScript的贷款计算器
查看>>
js原型和原型链
查看>>
图片生成缩略图
查看>>
基于SQL调用Com组件来发送邮件
查看>>
关于Mysql select语句中拼接字符串的记录
查看>>
动态规划 例子与复杂度
查看>>