Pandas 学习 第4篇:DataFrame -(建立、属性、操做列、类型转换)

数据框相似于二维的关系表,包含一组有序的列,列与列之间的数据类型能够是不一样的,可是单个列的数据类型是相同的。数据框的每一列或每一行均可以认为是一个Series。DataFrame中面向行和面向列的操做基本上是相同的,把行和列称做轴(axis),DataFrame是按照轴进行操做的,axis=0表示行轴;axis=1 表示列轴。html

DataFrame对象既有行索引(index),也有列索引(columns),行索引也叫作行标签,列索引也叫作列标签/列名。在DataFrame的构造函数中,columns参数用于设置列索引,index用于设置行索引,都属于Index类型。Index对象既可使用位置(整数)来表示,也可使用标签(字符串)来表示,位置的起始值是0,标签是经过列表来指定的。python

一,数据框构造函数

数据框的基础构造函数是DataFrame,从array-like的结构中构造数据框:api

pandas.DataFrame(data=None, index=None, columns=None)

参数注释:数组

  • data:ndarray、list 或dict
  • index:行索引
  • columns:列名列表

除了基础构造函数以外,还有 DataFrame.from_records 和 DataFrame.from_dict,专门用于从元组 和 字典中建立数据框。
app

二,建立数据框

一般状况下,咱们使用pd.DataFrame()函数来建立数据框,固然也能够根据须要使用pd.DataFrame.from_dict()函数来建立数据框。函数

1,使用字典来建立数据框spa

经过等长的字典来建立数据框,并能够设置数据框的列名和行索引。字典存储的是每列的数据:code

>>> data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], ... 'year': [2000, 2001, 2002, 2001, 2002], ... 'pop': [1.5, 1.7, 3.6, 2.4, 2.9]} >>> row_index = ['one', 'two', 'three', 'four', 'five'] >>> col_names=['year', 'state', 'pop'] >>> df=pd.DataFrame(data,columns=col_names,index=row_index) 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

2,使用列表(列表项是List)来建立数据框
htm

列表项是列表,把该列表转换为DataFrame:对象

students = [ ['jack', 34, 'Sydeny'] , ['Riti', 30, 'Delhi' ] , ['Aadi', 16, 'New York'] ] df = pd.DataFrame(students)

3,使用列表(列表项是元组)来建立数据框

列表项是元组,把该列表转换为DataFrame:

students = [ ('jack', 34, 'Sydeny') , ('Riti', 30, 'Delhi' ) , ('Aadi', 16, 'New York') ] df = pd.DataFrame(students)

4,使用from_dict建立数据框

data是一个字典结构,字典的Key是列名,Value是一个列表,经过这种格式建立数据框:

>>> data = {'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']} >>> pd.DataFrame.from_dict(data) col_1 col_2 0 3 a 1      2 b 2      1 c 3      0     d

三,数据框的属性

数据框的属性主要是索引、列名、数据类型和值,对于一下数据框

1,数据框的索引

经过index属性来访问数据框的行标签,经过columns属性访问数据框的列标签:

>>> df.index Index(['one', 'two', 'three', 'four', 'five'], dtype='object') >>> df.columns Index(['year', 'state', 'pop'], dtype='object')

2,数据类型

查看数据框各列的数据类型

>>> df.dtypes year int64 state object pop float64 dtype: object

查看数据框中某一列的数据类型:

df['col_name'].dtypes
df.col_name.dtypes

3,数据框的值

values属性以Numpy数组形式显示数据框的值:

>>> df.values array([[2000, 'Ohio', 1.5], [2001, 'Ohio', 1.7], [2002, 'Ohio', 3.6], [2001, 'Nevada', 2.4], [2002, 'Nevada', 2.9]], dtype=object)

4,数据框的轴和形状

>>> df.axes [Index(['one', 'two', 'three', 'four', 'five'], dtype='object'), Index(['year', 'state', 'pop'], dtype='object')] >>> df.shape (5, 3)

四,列操做和行操做

追加列

经过为一个新列赋值来向数据框中追加新列,新列始终处于列名序列的末尾:

>>> df['new']='a'

插入列 

要制定新列的位置,须要使用insert()函数,该函数向数据框中插入一列,并制定新列的位置:

DataFrame.insert(self, loc, column, value)

参数注释:

  • loc:插入列的位置,该位置索引必须0 <= loc <= len(columns)
  • column:插入列的名称
  • value:插入列的值,能够是单个标量值,插入列的值都是相同的;能够是序列或array-like,为每一行的列设置一个值。

举个例子,向df的末尾插入一列,列值都是a:

>>> df.insert(3,'new','a')

删除列或行

使用drop()函数来删除行或列:

DataFrame.drop(self, labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

参数注释:

  • labels 和 axis:labels参数指定要删除的标签,若是axis=0 或 'index',表示行标签;若是axis=1 或 'columns',表示列标签。axis的默认值是0。
  • index:设置index 等价于设置 labels 和axis=0;
  • columns:设置columns等价于设置 labels和 axis=1;

举个例子,把df的列new删除:

>>> df.drop(labels='new',axis=1)

追加数据行

向数据框的末尾追加数据行:

DataFrame.append(self, other, ignore_index=False, verify_integrity=False, sort=None)

也就是把一个结构相同的DataFrame追加到另外一个DataFrame的后面,把两个DataFrame合并为一个。

五,列数据类型转换

astype(dtype) 函数用于把数据框的列转换为特定的类型,dtype能够是pandas支持的类型,也能够是numpy.dtype,也能够是Python类型:

把数据框的列改变为字符串类型,str是python类型,'object'是pandas支持的字符串类型:

df['col_name'].astype(str)
df['col_name'].astype('object')

其余转换类型的函数

使用Pandas提供的函数如to_numeric()、to_datetime()

 

参考文档:

pandas DataFrame

原文出处:https://www.cnblogs.com/ljhdo/p/10593914.html

相关文章
相关标签/搜索