zoukankan      html  css  js  c++  java
  • DataFrame

    DataFrame是一个表格型的数据结构,含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等),DataFrame就行索引也有列索引,可以被看做由Series组成的字典(共用同一个索引)。跟其他类似的数据结构相比,DataFrame中面向行和面向列的操作基本上是平衡的。

    构建DataFrame的方法有很多,最常用的一种是直接传入一个由等长列表或Numpy数组组成的字典。

    结果DataFrame会自动加上索引,且全部列会被有序排列。

     1 In [10]: import pandas as ps
     2 
     3 In [11]: from pandas import DataFrame
     4 
     5 In [12]: data = {'state':['simple','simple','Python','Python'],'year':['2017','2
     6     ...: 018','2019','2020'],'pop':['1','2','3','4']}
     7 
     8 In [13]: frame = DataFrame(data)
     9 
    10 In [14]: frame
    11 Out[14]: 
    12   pop   state  year
    13 0   1  simple  2017
    14 1   2  simple  2018
    15 2   3  Python  2019
    16 3   4  Python  2020

    如果指定列顺序,DataFrame的列就会按照指定顺序进行排列。

    1 In [15]: DataFrame(data,columns=['year','state','pop'])
    2 Out[15]: 
    3    year   state pop
    4 0  2017  simple   1
    5 1  2018  simple   2
    6 2  2019  Python   3
    7 3  2020  Python   4

    与Series一样,如果传入的列在数据中找不到,就会产生NA值。

     1 In [17]: frame2 = DataFrame(data,columns=['year','state','pop','debt'],index=['o
     2     ...: ne','two','three','four'])
     3 
     4 In [18]: frame2
     5 Out[18]: 
     6        year   state pop debt
     7 one    2017  simple   1  NaN
     8 two    2018  simple   2  NaN
     9 three  2019  Python   3  NaN
    10 four   2020  Python   4  NaN
    11 
    12 In [19]: frame2.columns
    13 Out[19]: Index([u'year', u'state', u'pop', u'debt'], dtype='object')

    通过类似字典标记的方式或属性的方式,可以将DataFrame的列获取为一个Series。

     1 In [20]: frame2['state']
     2 Out[20]: 
     3 one      simple
     4 two      simple
     5 three    Python
     6 four     Python
     7 Name: state, dtype: object
     8 
     9 In [21]: frame2.year
    10 Out[21]: 
    11 one      2017
    12 two      2018
    13 three    2019
    14 four     2020
    15 Name: year, dtype: object

    返回的Series拥有原DataFrame相同的索引,且其name属性也已经被相应地设置好了。行也可以通过位置或名称的方式进行获取,用索引字段ix

    1 In [23]: frame2.ix['three']
    2 Out[23]: 
    3 year       2019
    4 state    Python
    5 pop           3
    6 debt        NaN
    7 Name: three, dtype: object

    列可以通过赋值的方式进行修改,给空的‘debt’列附上一个标量值或一组值。

    1 In [24]: frame2['debt'] = '10'
    2 
    3 In [25]: frame2
    4 Out[25]: 
    5        year   state pop debt
    6 one    2017  simple   1   10
    7 two    2018  simple   2   10
    8 three  2019  Python   3   10
    9 four   2020  Python   4   10

    通过np.arange()为‘debt’列赋值

    1 In [29]: frame2['debt'] = np.arange(4.)
    2 
    3 In [30]: frame2
    4 Out[30]: 
    5        year   state pop  debt
    6 one    2017  simple   1   0.0
    7 two    2018  simple   2   1.0
    8 three  2019  Python   3   2.0
    9 four   2020  Python   4   3.0

    将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配,如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位都会被填上缺失值。

     1 1 In [32]:  val = Series([1,3,4],index=['one','three','four'])
     2  2 
     3  3 In [33]: frame2['debt'] = val
     4  4 
     5  5 In [34]: frame2
     6  6 Out[34]: 
     7  7        year   state pop  debt
     8  8 one    2017  simple   1   1.0
     9  9 two    2018  simple   2   NaN
    10 10 three  2019  Python   3   3.0
    11 11 four   2020  Python   4   4.0

    为不存在的列赋值会创建出一个新列,关键字del用于删除列。。

     1 In [35]: frame2['eastern'] = frame2.state=='simple'
     2 
     3 In [36]: frame2
     4 Out[36]: 
     5        year   state pop  debt  eastern
     6 one    2017  simple   1   1.0     True
     7 two    2018  simple   2   NaN     True
     8 three  2019  Python   3   3.0    False
     9 four   2020  Python   4   4.0    False
    10 
    11 In [37]: del frame2['eastern']
    12 
    13 In [38]: frame2.columns
    14 Out[38]: Index([u'year', u'state', u'pop', u'debt'], dtype='object')

    通过索引方式返回的列知识相应数据的视图,并不是副本。因此,对返回的Series所做的任何就地修改全都会反应到源DataFrame上。通过Series的copy()即可显示地复制列

  • 相关阅读:
    Brain network involved in autonomic functions 与自主功能相关的大脑网络
    Brief summary of classical components of ERP 事件相关成分(ERP)经典成分小结
    ICA & Percentage Variance Account For (PVAF)
    数据处理中白化Whitening的作用图解分析
    Loadings vs eigenvectors in PCA 主成分分析(PCA)中的负荷和特征向量
    主成分分析(PCA)和独立成分分析(ICA)相关资料
    Sketch of heart and QRS complex 心脏及QRS波群简图
    Brain Network visulation in EEG 脑电网络可视化
    Phase Locking Value (PLV) 神经信号的锁相值
    ubuntu16.04下的一些基本操作笔记
  • 原文地址:https://www.cnblogs.com/yu-1104/p/7891446.html
Copyright © 2011-2022 走看看