pandas学习笔记

这是小白的第三篇博客,今天小白来学习一下python中的pandas数据分析包,这是参考链接以及十分钟了解pandas

pandas介绍
就理解为一个工具包,包含大量库和一些标准的数据模型,基于numpy的一种工具,用来解决数据分析而提供了大量处理数据的函数和方法。

介绍数据结构
关于数据类型、索引和轴标记/对齐的基础操作适用于所有对象。首先,和小白一起导入numpy和pandas

import numpy as np
import pandas as pd

要记住的是数据对齐在内部,不会破坏标签和数据间的链接(除非你明确要断开链接)
1.Series:
一维数组,可以保存任何数据类型(整数、字符串、浮点数、其他)。可以理解为list,但是只能存储相同的数据类型,用法: s = pd.Series(数据,index = 需要传递的索引标签)
pandas学习笔记Series还可以有名字,还可以重命名,如下图中s和s1是不同的哦
pandas学习笔记
Time-Series以时间为索引的Series

2.dict:
字典,Series可以被dict实例化,需要注意的是当数据是dict时,如果没有传递索引,索引将按照dict的插入顺序
pandas学习笔记
3.scalar value标量值:
当数据是一个标量值时必须有索引,并且它会重复该值来匹配索引的长度
pandas学习笔记4.DataFrame:
二维表格型数据结构,具有可能不同类型的列,其实与R语言中的data.frame类似,就数据框嘛还可以接受不同类型的输入,还可以理解为多个Series构成的。除了数据外还可以选择传递索引(行标签)和列(列标签),如果传递索引或者列,要确保索引的结果是数据框,如果是一维数组中的一个dict加上某个索引则会丢弃与传递索引不匹配的所有数据。如果没有传递标签,它会根据默认规则按输入数据构建。
通过传递元组字典还可以自动创建多索引数据框
pandas学习笔记
5.Panel:
三维数组,同上就理解为多个DataFrame构成Panel。

pandas中的函数
1.read_csv()函数
读取指定的csv文件,生成一个包含csv数据的DataFrame
info(返回参数,DataFrame类型) = pd.read_csv((需要读取的csv文件名字,str类型))
类似的函数还有read_excel() read_json read_sql() read_html()
2.isnul()函数
返回一个包含数据是否是null的信息数据
bool(返回判断结果,True为null,Fales为不是) = pd.isnull((需要判断的数据,DataFrame/Series类型))
3.to_datetime()函数
将传入的数据转换成日期,date(返回的数据,类型由传入的参数确定) = pd.to_datetime((可以传int/float/string/datetime/list/tuple/Series/DataFrame))
4.DataFrame函数【4-14属DataFrame类】
生成DataFrame,df = pd.DataFrame(data, index = (作为索引的列参数))
5.dtypes属性
返回数据结构中每列数据类型,d = df.dtypes
6.columns属性
返回数据结构中每列的列名,index_name = df.columns
7.shape属性
返回数据结构的行列参数,shp(返回元组类型,行列数) = df.shape
8.head()、tail()函数
返回csv列表中的前、后num行数据,hdf = df.head(num = )默认情况下是前10行,tdf = df.tail(num = )同上
9.describe()函数
这个函数画重点哦,小白觉得必有大用,返回csv列表中的每个列的一些统计描述参数,像数量、均值、标准差、最小值、四分之一位数、中位数、四分之三位数、最大值,ddf = df.describe()
10.sort_valuns()函数
这个函数有点腻害,返回按参数排序的DataFrame,sdf = df.sort_values(by, axis=0, ascending=True, inplace=False, kind=’quicksort’, na_position=’last’)
by: DataFrame的行/列名
axis: 0按列排序,1按行排序
ascending:True为升序排列, False为降序排列
inplace: True修改原DataFrame,False则返回新的DataFrame
kind: 确定排序算法,包括{‘quicksort’, ‘mergesort’, ‘heapsort’}
na_position: 确定na数据存在的位置,‘first’/‘last’
11.pivot_table()函数
根据index将数据分组,对于values列的值(相同类型)执行aggfunc函数,最后得到DataFrame, cdf = df.pivot_table(index = , values = , aggfunc = )
12.dropna()函数
该函数会根据要求删除带有NaN值的行和列,ddf = df.dropna(axis=0, how=’any’, thresh=None, subset=None, inplace=False)
axis:搜索方向,0/‘index’为行搜索,1/‘columns’为列搜索
how: ‘any’只要出现NA值就删除该行/列数据,‘all’所有值都是NA才删除
thresh: 表示对有效数据数量的最小要求(为2则要求该行/列至少2个有效非NA数据存在)
subset: 表示在特定子集中寻找NA
inplace: 表示是否在原数据操作,True修改原数据,False返回新数据
13.reset_index()函数
重置(一般为经过排序后的)DataFrame的序号,rdf = df.reset_index(level = None, drop = False, inplace = False, col_level = 0, col_fill = ’’)
level:只从索引中删除给定的级别。默认情况下删除所有级别
drop: 是否删除原始的index列,True删除,False保留
inplace: 是否在原数据上操作
col_level: 如果列有多个级别,则确定将标签插入到哪个级别。默认情况下,它插入到第一级
col_fill:如果列有多个级别,则确定其他级别的命名方式。如果没有,则重复索引名。
14.set_index()函数
根据现有的columns参数重新设置index索引,sdf = df.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
keys: 需要作为索引的列名
drop: 是否删除作为索引的列,True删除,False保留
append: 是否添加默认的序号索引
inplace: 是否在原数据上操作verify_integrity: 检查新索引是否有重复项。否则,请推迟检查,直到必要时为止。设置为false将提高此方法的性能
15.Series函数【15-属Series类,相同的只改sr的不再记录】
sr(生成Series) = pd.Series(data(参数), index = (索引列参数))
16.tolist()函数
将Series或Index类的数据变成list形式返回,list =sr.tolist()
17.value_counts ()函数
计算Series中各个values值的数量,csr = sr.value_counts(dropna=True)dropna: 是否计算NA的数量,True不计算,False计算
结语
嘛,就先到这里,下次再通过实例来认识pandas工具,毕竟只是了解用途什么的有种纸上谈兵的感jio~