美文网首页
pandas之DataFrame对象

pandas之DataFrame对象

作者: 煮茶boy | 来源:发表于2018-10-07 20:03 被阅读0次

DataFrame对象

DataFrame这种列表式数据结构跟excel表相似,其设计初衷是将Series的使用场景由一维扩展到多维,DataFrame由按一定顺序排列的多列数据组成,各列的数据类型可以有所不同.
DataFrame对象有两个索引数组(index和columns),第一个数组与行相关,它与Series的索引数组极为相似,每个索引值都跟所在的一行相关联,第二个数组包含一系列列标签(每个值相当于列名),DataFrame可以理解为一个由Series组成的字典,其中每一列的名称作为字典的键,形成DataFrame的列的Series作为字典的值,每个Series的所有元素映射到叫Index的标签数组中.

dataframe.png
  • 定义DataFrame对象
    构造函数如下:
def __init__(self, data=None, index=None, columns=None, dtype=None,
                 copy=False):

使用字典构造DataFrame对象,字典的键为columns的值,字典的值为columns的值对应的Series对象.

>>> data = {"color": ["blue", "green", "yellow", "red", "white"], "object": ["ball", "pen", "pencil", "paper", "mug"], "price": [1.2, 1.0, 0.6, 0.9, 1.7]}
>>> frame = pd.DataFrame(data)
>>> print(frame)
    color  object  price
0    blue    ball    1.2
1   green     pen    1.0
2  yellow  pencil    0.6
3     red   paper    0.9
4   white     mug    1.7

如果用来创建DataFrame的dict中存在你不需要的数据,你可以指定columns参数来构造DataFrame对象,新建的DataFrame各列顺序与你指定的列顺序一样.

>>> frame2 = pd.DataFrame(data, columns=["color", "price"])
>>> print(frame2)
    color  price
0    blue    1.2
1   green    1.0
2  yellow    0.6
3     red    0.9
4   white    1.7

也可以指定index参数构造DataFrame对象,如果没有指定,默认是从0开始依次递增的数组.

>>> frame2 = pd.DataFrame(data, index=["one", "two", "three", "four", "five"])
>>> print(frame2)
        color  object  price
one      blue    ball    1.2
two     green     pen    1.0
three  yellow  pencil    0.6
four      red   paper    0.9
five    white     mug    1.7
  • 使用数据矩阵构造DataFrame对象
>>> frame3 = pd.DataFrame(np.arange(16).reshape((4,4)), index=["red", "blue", "yellow", "white"], columns=["ball", "pen", "pencil", "paper"])
>>> print(frame3)
>>> print(frame3)
        ball  pen  pencil  paper
red        0    1       2      3
blue       4    5       6      7
yellow     8    9      10     11
white     12   13      14     15
  • 选取元素
>>> print(frame3.columns)
Index(['ball', 'pen', 'pencil', 'paper'], dtype='object')
>>> print(type(frame3.columns))
<class 'pandas.core.indexes.base.Index'>
>>> print(frame3.index)
Index(['red', 'blue', 'yellow', 'white'], dtype='object')
>>> print(type(frame3.index))
<class 'pandas.core.indexes.base.Index'>
>>> print(frame3.values)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]
>>> print(type(frame3.values))     --- 是一个numpy的ndarray数组
<class 'numpy.ndarray'>
  • 获取一列数据
>>> print(frame3["paper"])    --- 得到一个Series对象
red        3
blue       7
yellow    11
white     15
Name: paper, dtype: int32
>>> print(type(frame3["paper"])
<class 'pandas.core.series.Series'>
>>> print(frame3.paper)    --- 使用列名称作为属性获取一列
red        3
blue       7
yellow    11
white     15
Name: paper, dtype: int32
  • 获取一行(使用DataFrame对象的ix属性)
>>> print(frame3.ix[2])     --- 返回一个Series对象,index由列名组成,values为每个列名对应的值
ball       8
pen        9
pencil    10
paper     11
Name: yellow, dtype: int32
>>> print(type(frame3.ix[2]))
<class 'pandas.core.series.Series'>
  • 用一个数组指定多个索引值选取多行,返回一个DataFrame对象
>>>print(frame3.ix[[2,4]])  --- 两个参数表示选取行
       ball  pen  pencil  paper
blue      4    5       6      7
white    12   13      14     15
>>>print(type(frame3.ix[[2,4]]))
<class 'pandas.core.frame.DataFrame'>
  • 直接使用索引选取多行数据
>>> print(frame3[1:3])
        ball  pen  pencil  paper
blue       4    5       6      7
yellow     8    9      10     11
>>> print(frame3[1])
直接报错,不能选取一行
>>> print(frame3[1:2])    --- 选取一行
      ball  pen  pencil  paper
blue     4    5       6      7
  • 获取存储在DataFrame中的一个数据
>>>print(frame3["paper"][2])
11
  • 赋值

相关文章

  • 5.3 DataFrame对象

    5.3.1 DataFrame介绍 DataFrame对象是Pandas最常用的数据对象。一个DataFrame是...

  • pandas之DataFrame对象

    DataFrame对象 DataFrame这种列表式数据结构跟excel表相似,其设计初衷是将Series的使用场...

  • 2020-02-12

    Pandas笔记之创建 Pandas DataFrame DataFrame为Pandas的第二种主要数据结构,是...

  • 第三方库-Pandas-基础

    1 DataFrame: Python Pandas - DataFrame pandas.DataFrame

  • [译]Pandas常用命令对照清单

    我们在内容中使用以下简写: df pandas的DataFrame对象s pandas的Series对象 导入以...

  • Pandas的对象之DataFrame

    DataFrame是Pandas的另一个数据结构 1. DataFrame是通用的Numpy数组 2. DataF...

  • API - 机器学习 - 速查

    常规操作 一、pandas pandas.DataFrame.describe pandas.DataFrame....

  • Pandas

    Pandas的数据结构 pandas 中使用Series和DataFrame对象存储数据 Series 1.什么是...

  • pandas dataFrame使用积累

    用python做数据分析pandas库介绍之DataFrame基本操作一、查看数据(查看对象的方法对于Series...

  • pandas常用操作命令大全

    在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 s:任意的Pandas S...

网友评论

      本文标题:pandas之DataFrame对象

      本文链接:https://www.haomeiwen.com/subject/ivyqaftx.html