我们一般都是预定将pandas库加载为pd(import pandas as pd),这种方式也是官网推荐的方式。
pandas模块依赖于numpy模块(在pip安装pandas时会自动安装),也需要引入import numpy as np
pandas的数据结构有Series和DataFrame
Series是一维数据结构
DataFrame表示为具有行和列的二维数据
DataFrame的每个column就是一个Series
一、创建数据对象
创建Series数据
Series(data=None,index=None,dtype=None,name=None)
data:创建的Series对象的数据,可以为list或dict
打印时会打印两列。第一列称为索引(data为list时通常从0开始,data为dict时为dict的键),第二列是对应的数据
index:指定索引的值,index必须是一个tuple或list
data为list或dict时index的元素数量必须和data中的数据数量相同
data为一个字符串或数字时,会按照index的数量建立相同数量的数据,且所有索引对应的值相同(都为data)
dtype:指定数据的数据类型
name:指定Series数据对象的name,当在DataFrame的上下文中使用时,这个名称作为列名
创建DataFrame数据
1、手动创建
DataFrame(data=None,index=None,columns=None,dtype=None)
手动将数据输入,这只适用于微小的数据集
data:要输入的数据
当data为dict时
{"col1_name": [1,2,3,4],"col2_name": ["one", "two", "three", "four"]}
当data为list时
[{'col1_name': 1, 'col2_name': 2}, {'col1_name': 5, 'col2_name': 10}]
[[1,2,3],[4,5,6]] #这种格式的list不提供columns默认为数字
index:指定索引值,默认为数字索引(从0开始)
columns:指定列名称,默认为数字(从0开始)
dtype:指定所有列的数据类型
2、从文件加载
从不同的文件加载有各自对应的方法,常用的有:
read_excel()、read_csv()、read_html()、read_json()、read_sql()、read_sql_query()、read_sql_table()
read_sql()是从一个sql查询或sql表格中导入,整合了read_sql_query()和read_sql_table()
read_table(path_or_buf,sep='\t',header=None,names=None,index_col=None,prefix=None,mangle_dupe_cols=True,dtype=None,engine=None,converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True,thousands=None,encoding=None)
path_or_buf:可以是文件本地路径,也可以是URL,URL协议包括http、ftp、s3和file。
sep:指定列分隔符
header:指定作为列名的行号,可以是一个int或int组成的list,默认从文件的第一行推断列名
names:通过一个不允许有重复值的list或set等指定所有列名称,当指定该参数时需要指定header参数值为0
index_col:用作索引的列名称str或列索引int,也可以是一个它们组成的list
prefix:当没有列名称时默认添加列名称的前缀
mangle_dupe_cols:重复列将被指定为'col_name','col_name.1','col_name.2'...
dtype:使用dict指定列的数据类型,如{'col_1':type1,'col_2':type2,...},键名为列名称str或列索引int
engine:要使用的分析器引擎('c'或者'python')。C引擎更快,而python引擎目前功能更完善。
converters:用于转换某些列中的值的函数的指令。{'col_1':func1,'col_2':func2,...},键名为列名称str或列索引int</