数据分析工具Pandas

ser_obj = pd.Series([1, 2, 3, 4, 5], index=[‘a’, ‘b’, ‘c’, ‘d’, ‘e’])

ser_obj[2] # 使用索引位置获取数据

ser_obj[‘c’] # 使用索引名称获取数据

ser_obj[2: 4] # 使用位置索引进行切片

ser_obj[‘c’: ‘e’] # 使用索引名称进行切片

通过不连续位置索引获取数据集 ser_obj[[0, 2, 4]]

通过不连续索引名称获取数据集 ser_obj[[‘a’, ‘c’, ‘d’]]

创建布尔型Series对象 ser_bool = ser_obj > 2

获取结果为True的数据ser_obj[ser_bool]

数据分析工具Pandas

loc:基于标签索引(索引名称),用于按标签选取数据。当执行切片操作时,既包含起始索引,也包含结束索引。

iloc:基于位置索引(整数索引),用于按位置选取数据。当执行切片操作时,只包含起始索引,不包含结束索引。

3 . 算术运算与数据对齐

执行加法运算,补充缺失值 obj_one.add(obj_two, fill_value = 0)

4 . 数据排序

Pandas中按索引排序使用的是sort_index()方法,可以用行索引或者列索引进行排序。

sort_index(axis = 0,level = None,ascending = True,inplace = False,kind =’ quicksort ‘,na_position =’last’,sort_remaining = True )

axis:轴索引,0表示index(按行),1表示columns(按列)。 level:若不为None,则对指定索引级别的值进行排序。 ascending:是否升序排列,默认为True表示升序.

ser_obj = pd.Series(range(10, 15), index=[5, 3, 1, 3, 2]) # 按索引进行升序排列 ser_obj.sort_index() # 按索引进行降序排列 ser_obj.sort_index(ascending = False)

df_obj = pd.DataFrame(np.arange(9).reshape(3, 3), index=[4, 3, 5])

按行索引升序排列 df_obj.sort_index()

按行索引降序排列 df_obj.sort_index(ascending=False)

按值排序

sort_values()

sort_values(by,axis=0, ascending=True, inplace=False, kind=’quicksort’,na_position=’last’)

注:by参数表示排序的列,na_position参数只有两个值:first和last,若设为first,则会将NaN值放在开头;若设为False,则会将NaN值放在最后。

ser_obj = pd.Series([4, np.nan, 6, np.nan, -3, 2]) # 按值升序排列 ser_obj.sort_values()

在DataFrame中,sort_values()方法可以根据一个或多个列中的值进行排序,但是需要在排序时,将一个或多个列的索引传递给by参数才行

df_obj = pd.DataFrame([[0.4, -0.1, -0.3, 0.0], [0.2, 0.6, -0.1, -0.7], [0.8, 0.6, -0.5, 0.1]]) # 对列索引值为2的数据进行排序 df_obj.sort_values(by=2)

5.统计计算与描述

数据分析工具Pandas

一次性输出多个统计指标:describe(percentiles=None, include=None, exclude=None)

注释:percentiles:输出中包含的百分数,位于[0,1]之间。如果不设置该参数,则默认为[0.25,0.5,0.75],返回25%,50%,75%分位数

  1. 层次化索引

在一个轴方向上具有多层索引

数据分析工具Pandas

在构造方法的index参数中传入一个嵌套列表:

mulitindex_series = pd.Series([15848,13472,12073.8,7813, 7446,6444,15230,8269],

index=[[‘河北省’,’河北省’,’河北省’,’河北省’,

‘河南省’,’河南省’,’河南省’,’河南省’],

[‘石家庄市’,’唐山市’,’邯郸市’,’秦皇岛市’,

‘郑州市’,’开封市’,’洛阳市’,’新乡市’]])

在创建层次化索引对象时,嵌套函数中两个列表的长度必须是保持一致的,否则将会出现ValueError错误。

‘创建层次化索引

MultiIndex.from_tuples():将元组列表转换为MultiIndex。

MultiIndex.from_arrays():将数组列表转换为MultiIndex。

MultiIndex.from_product():从多个集合的笛卡尔乘积中创建一个MultiIndex。

将包含若干个元组的列表转换为MultiIndex对象:

list_tuples = [(‘A’,’A1′), (‘A’,’A2′), (‘B’,’B1′),(‘B’,’B2′), (‘B’,’B3′)] # 根据元组列表创建一个MultiIndex对象 multi_index = MultiIndex.from_tuples(tuples=list_tuples, names=[ ‘外层索引’, ‘内层索引’])

将数组列表转换为MultiIndex对象:

multi_array = MultiIndex.from_arrays(arrays =[[‘A’, ‘B’, ‘A’, ‘B’, ‘B’], [‘A1’, ‘A2’, ‘B1’, ‘B2’, ‘B3’]], names=[‘外层索引’,’内层索引’])

从多个集合的笛卡尔乘积中创建一个MultiIndex对象:

numbers = [0, 1, 2] colors = [‘green’, ‘purple’] multi_product = pd.MultiIndex.from_product(iterables=[numbers, colors], names=[‘number’, ‘color’])

根据书籍统计表,创建一个具有多层索引的Series对象,示例如下:

ser_obj = Series([50, 60, 40, 94, 63, 101, 200, 56, 45], index=[[‘小说’, ‘小说’, ‘小说’, ‘散文随笔’, ‘散文随笔’, ‘散文随笔’, ‘传记’, ‘传记’, ‘传记’], [‘高山上的小邮局’, ‘失踪的总统’, ‘绿毛水怪’, ‘皮囊’, ‘浮生六记’, ‘自在独行’, ‘梅西’, ‘老舍自传’, ‘库里传’]])

从表中筛选出外层索引标签为小说的数据:

获取所有外层索引为”小说”的数据 ser_obj[‘小说’]

操作内层索引获取该书籍的类别与销售数量:

获取内层索引对应的数据 ser_obj[:,’自在独行’]

交换分层顺序是指交换外层索引和内层索引的位置:

数据分析工具Pandas

交换分层顺序的操作:# 交换外层索引与内层索引位置 ser_obj.swaplevel()

按照分层索引对数据排序:

sort_index(axis = 0,level = None,ascending = True,inplace = False,kind =’ quicksort ‘,na_position =’last’, sort_remaining = True,by = None )

注:by:表示按指定的值排序。 ascending:布尔值,表示是否升序排列,默认为True。

在使用sort_index()方法排序时,会优先选择按外层索引进行排序,然后再按照内层索引进行排序。

数据分析工具Pandas

7 . 读写数据操作

在进行数据分析时,将待分析的数据存储到本地中,之后再对存储文件进行读取.

CSV文件是一种纯文本文件,可以使用任何文本编辑器进行编辑,它支持追加模式,节省内存开销。

to_csv()方法的功能是将数据写入到CSV中:to_csv(path_or_buf=None,sep=’,’,na_rep=”,float_format=None,columns=None,header=True, index=True, index_label=None, mode=’w’, …)

注:path_or_buf:文件路径。 index:默认为True,若设为False,则将不会显示索引。 sep:分隔符,默认用”,”隔开。

read_csv()函数的作用是将CSV文件的数据读取出来,转换成DataFrame对象展示:

read_csv(filepath_or_buffer,sep=’,’, delimiter=None, header=’infer’, names=None, index_col=None, usecols=None, prefix=None, …)

注:sep:指定使用的分隔符,默认用”,”分隔。 header:指定行数用来作为列名。 names:用于结果的列名列表。如果文件不包含标题行,则应该将该参数设置为None。

如果希望读取Text文件,既可以用read_csv()函数,也可以使用read_table()函数。

read_csv()与read_table()函数的区别在于使用的分隔符不同,前者使用”,”作为分隔符,而后者使用”\t”作为分隔符。

Excel的文件扩展名有.xls和.xlsx两种。

read_excel()函数的作用是将Excel中的数据读取出来,转换成DataFrame展示:

pandas.read_excel(io,sheet_name=0,header=0,names=None,index_col=None, **kwds)

注:io:表示路径对象。 sheet_name:指定要读取的工作表,默认为0。 header:用于解析DataFrame的列标签。 names:要使用的列名称。

在浏览网页时,有些数据会在HTML网页中以表格的形式进行展示。

数据分析工具Pandas

可以使用read_html()函数进行读取,并返回一个包含多个DataFrame对象的列表

pandas.read_html(io, match=’.+’, flavor=None,header=None, index_col=None,skiprows=None, attrs=None)

注:io:表示路径对象。 header:表示指定列标题所在的行。 index_col:表示指定行标题对应的列。 attrs:默认为None,用于表示表格的属性值。

Pandas 支持Mysql、Oracle、SQLite等主流数据库的读写操作。

!!!!:在连接mysql数据库时,这里使用的是mysqlconnector驱动,如果当前的Python环境中没有改模块,则需要使用pip install mysqlconnector命令安装该模块。

read_sql()函数既可以读取整张数据表,又可以执行SQL语句:

pandas.read_sql(sql,con,index_col=None,coerce_float=True,params=None,parse_dates=None, columns=None, chunksize=None)

注:sql:表示被执行的SQL语句。

con:接收数据库连接,表示数据库的连接信息。

columns:从SQL表中选择列名列表。

!!!!:通过create_engine()函数创建连接时,需要指定格式如下:’数据库类型+数据库驱动名称://用户名:密码@机器地址:端口号/数据库名’。

to_sql()方法的功能是将Series或DataFrame对象以数据表的形式写入到数据库中:

to_sql(name,con,schema = None,if_exists =’fail’,index = True,index_label = None,chunksize = None,dtype = None )

name:表示数据库表的名称。 con: 表示数据库的连接信息。 if_exists:可以取值为fail、replace或append,默认为’fail’。

总结:

Original: https://blog.csdn.net/Devilunlock/article/details/123311431
Author: Devilunlock
Title: 数据分析工具Pandas

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/739912/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球