栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

pandas DataFrame

Python 更新时间:发布时间: 百科书网 趣学号
认识Dataframe结构

Dataframe 一个表格型的数据结构,既有行标签(index),又有列标签(columns),它也被称异构数据表,所谓异构,指的是表格中每列的数据类型可以不同,比如可以是字符串、整型或者浮点型等。其结构图示意图,如下所示:

Dataframe 的每一行数据都可以看成一个 Series 结构,只不过,Dataframe 为这些行中每个数据值增加了一个列标签。因此 Dataframe 其实是从 Series 的基础上演变而来。在数据分析任务中 Dataframe 的应用非常广泛,因为它描述数据的更为清晰、直观。 

下面对 Dataframe 数据结构的特点做简单地总结,如下所示:

  • Dataframe 每一列的标签值允许使用不同的数据类型;
  • Dataframe 是表格型的数据结构,具有行和列;
  • Dataframe 中的每个数据值都可以被修改。
  • Dataframe 结构的行数、列数允许增加或者删除;
  • Dataframe 有两个方向的标签轴,分别是行标签和列标签;
  • Dataframe 可以对行和列执行算术运算。

创建Dataframe对象

创建 Dataframe 对象的语法格式如下:

import pandas as pd
pd.Dataframe( data, index, columns, dtype, copy)
参数名称说明
data输入的数据,可以是 ndarray,series,list,dict,标量以及一个 Dataframe。
index行标签,如果没有传递 index 值,则默认行标签是 np.arange(n),n 代表 data 的元素个数。
columns列标签,如果没有传递 columns 值,则默认列标签是 np.arange(n)。
dtypedtype表示每一列的数据类型。
copy默认为 False,表示复制数据 data。

1) 创建空的Dataframe对象

>>> pd.Dataframe()

Empty Dataframe
Columns: []
Index: []

2) 列表创建DataFame对象

可以使用单一列表或嵌套列表来创建一个 Dataframe。

>>> data = [1,2,3,4,5]
>>> pd.Dataframe(data)

   0
0  1
1  2
2  3
3  4
4  5

#嵌套

data = [['Alex',10],['Bob',12],['Clarke',13]]
pd.Dataframe(data,columns=['Name','Age'])

      Name      Age
0     Alex      10
1     Bob       12
2     Clarke    13

3) 字典嵌套列表创建

pd.Dataframe({'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]})

4) 列表嵌套字典创建Dataframe对象

列表嵌套字典可以作为输入数据传递给 Dataframe 构造函数。默认情况下,字典的键被用作列名。

data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
pd.Dataframe(data)

    a    b      c
0   1   2     NaN
1   5   10   20.0

5) Series创建Dataframe对象

pd.Dataframe({'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
   'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])})

      one    two
a     1.0    1
b     2.0    2
c     3.0    3
d     NaN    4

列索引操作Dataframe

1) 列索引选取数据列

df ['one']

a     1.0
b     2.0
c     3.0
d     NaN
Name: one, dtype: float64

2) 列索引添加数据列

#使用df['列']=值,插入新的数据列
...

#将已经存在的数据列做相加运算
df['four']=df['one']+df['three']

insert() 方法插入新的列:
#注意是column参数
#数值1代表插入到columns列表的索引位置
df.insert(1,column='score',value=[91,90,75])

3) 列索引删除数据列

通过 del 和 pop() 都能够删除 Dataframe 中的数据列。

#使用del删除
del df['one']
print(df)

#使用pop方法删除
df.pop('two')
print (df)

行索引操作Dataframe

1) 标签索引选取

可以将行标签传递给 loc 函数

df.loc['index, columns']

loc 允许接两个参数分别是行和列,参数之间需要使用“逗号”隔开,但该函数只能接收标签索引。

2) 整数索引选取

通过将数据行所在的索引位置传递给 iloc 函数

iloc 允许接受两个参数分别是行和列,参数之间使用“逗号”隔开,但该函数只能接收整数索引。

3) 切片操作多行选取

4) 添加数据行

使用 append() 函数,可以将新的数据行添加到 Dataframe 中,该函数会在行末追加数据行。

5) 删除数据行

您可以使用行索引标签,从 Dataframe 中删除某一行数据。如果索引标签存在重复,那么它们将被一起删除。

drop()


常用属性和方法汇总

Dataframe 的属性和方法,与 Series 相差无几,如下所示:
 

名称属性&方法描述
T行和列转置。
axes返回一个仅以行轴标签和列轴标签为成员的列表。
dtypes返回每列数据的数据类型。
emptyDataframe中没有数据或者任意坐标轴的长度为0,则返回True。
ndim轴的数量,也指数组的维数。
shape返回一个元组,表示了 Dataframe 维度。(n index, n columns)
sizeDataframe中的元素数量。
values使用 numpy 数组表示 Dataframe 中的元素值。
head()返回前 n 行数据。
tail()返回后 n 行数据。
shift()将行或列移动指定的步幅长度

 

10) shift()移动行或列

如果您想要移动 Dataframe 中的某一行/列,可以使用 shift() 函数实现。它提供了一个periods参数,该参数表示在特定的轴上移动指定的步幅。

shif() 函数的语法格式如下:

Dataframe.shift(periods=1, freq=None, axis=0)  

参数名称说明
peroids类型为int,表示移动的幅度,可以是正数,也可以是负数,默认值为1。
freq日期偏移量,默认值为None,适用于时间序。取值为符合时间规则的字符串。
axis如果是 0 或者 "index" 表示上下移动,如果是 1 或者 "columns" 则会左右移动。
fill_value该参数用来填充缺失值。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/273204.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号