与其他编程语言一样,Python具有大量其他模块和库,这些模块或库支持该语言的基本框架和功能。
我们将库视为函数的集合,无需编写自己的算法即可访问这些函数以完成某些编程任务。
比如以下这些模块:
Numpy is a library for working with arrays of data.用于处理数据数组的库。
Pandas provide high-performance, easy-to-use data structures and data analysis tools. 提供了高性能,易于使用的数据结构和数据分析工具。
Scipy is a library of techniques for numerical and scientific computing.是用于数值和科学计算的技术库。
Matplotlib is a library for making graphs. 是用于制作图形的库。
Seaborn is a higher-level interface to Matplotlib that can be used to simplify many graphing tasks.是Matplotlib的高级接口,可用于简化许多图形绘制任务。
Statsmodels is a library that implements many statistical techniques.是一个实现许多统计技术的库。
现在我们主要来看看pandas这个库的使用方法
pandas的数据结构有三种 分别为 series,dataframe和panel,对应一维,二维,三维数据。 其中dataframe最为常用。
1. 录入文件
df = pd.read_csv("文件名")
2. 查看文件
我们可以通过调用head()函数来查看前五行数据:
df.head()
如果我要查看全部数据,则直接输入df
栗子(come from coursera):
如果我们要看表头,那就输入:
df.columns
3.pandas索引
记得之前说过的切片slice吗,dataframe的索引中,有三个函数可以用于选择数据
loc(): 使用index来选择数据 (based indexing)
iloc():使用整数索引来选择数据 (positional indexing)
ix(): iloc()和loc()的混合 (已废弃,不推荐使用)
首先介绍loc(),
语法:
loc [ : , ]
一般逗号左边是用来索引行,逗号的右边用来索引列
一般逗号的左边都是数字,右边则为“列名”,也可以是bool
索引单列语法:
df.loc[:,"列名"]
这样就会输出所有的这一列的数据
索引多列语法:
df.loc[:,[ "列名1", "列名2", "列名3" ]]
这样就会输出多行数据
索引限定行语法:
数字也可以放入loc中当做索引,但是这时数字指的是标签而不是位置
比如df.loc[数字:数字]所输出的是编程排序里0-9的,也就是ID从1-10的行
df.loc[:数字,[ "列名1", "列名2", "列名3" ]]
df.loc[数字:数字,[ "列名1", "列名2", "列名3" ]]
另外,在我们进行索引的时候,就像python中的切片一样,如果是针对行的索引,那么后边的:, 是可以省略不写的。
还有一种玩法,就是利用loc函数,根据某个数据来提取数据所在的行
举个例子:
然后,我们来看看.iloc, .iloc 是基于integer 和bool的切片,不接受string。
基础语法:
iloc [ : , : ]
跟loc一样,iloc逗号左边是用来索引行,逗号的右边用来索引列
一般逗号的左右都是数字
与.loc不同的是,.iloc里面的数字指的是位置,所以遵从我们切片器的规则,包头不包尾。( [1:5] 的意思就是,从第二个到第四个,因为包1不包5)
用法:
df.iloc[:4] 代表索引前4行 (编程里的排序0,1,2,3,ID为1,2,3,4)
df.iloc[4] 代表索引第5行 (编程里的排序0,1,2,3,4的4代表ID5)
df.iloc[1:5, 2:4] 代表索引2-5行,3-4列(编程里排序的1234,也就是ID2345; 编程里排序的23,也就是第三第四列)
我们还可以通过输入df.dtypes 来看看文档的数据类型
也可以通过df.列名.unique 来看看这一列存在的unique值
另外,df.groupby(['列名‘]).size()可以帮我们查看列里面的variable出现的个数
今天先到这儿,只是对pandas进行一个初步的了解,明天继续加油呀~