pandas介绍

  1. Pandas是基于Numpy的专业数据分析库,可以灵活高效的处理各种数据集。它提供了两种类型的数据结构,分别是DataFrameSeriesDataFrame可以理解为Excel里面的一张表,Series就是表中的某一列,后面学习和用到的所有Pandas骚操作,都是基于DataFrmaeSeries进行的操作。
  2. PandasExcelSQL相比,只是调用和处理数据的方式变了,**核心都是对源数据进行一系列的处理**,在正式处理之前,更重要的是**谋定而后动,明确分析的意义,理清分析思路之后再处理和分析数据,往往事半功倍。**

创建DataFrame对象

创建一个DataFrame对象

  1. import pandas as pd
  2. # 字典作为数据源
  3. # 键值为
  4. data_src = {'name':['李华','张三','李四','王二'],'age':[18,19,19,18],'sex':['男','男','男','男']}
  5. pd.DataFrame(data_src)
  6. 运行结果:
  7. name age sex
  8. 0 李华 18
  9. 1 张三 19
  10. 2 李四 19
  11. 3 王二 18
  12. 其中0123index,如果在创建时不指定index,系统会自动生成从0开始的索引。
  13. name age sex columns
  14. 中间的部分就是数据:values

通过改变index,columns、values来控制数据

读取csv文件

数据源的格式大多是.csv和.xlsx和.slx,分析数据第一步就是导入数据源

在pandas中使用pandas.read_csv()导入一个csv数据,返回一个DataFrame对象,这个方法有很多的参数,具体可以查阅官方文档

  1. pd.read_csv(
  2. file_path_or_buffer:union(str,pathlib.Path),
  3. usecols=None,
  4. engine=None,
  5. )
  6. usecols :Return a subset of the columns.指定读取的数据中的几列,第一列下表从0开始
  7. engine:engine{‘c’, python’}, optional
  8. Parser engine to use. The C engine is faster while the python engine is currently more feature-complete.
  9. 一般使用python引擎可以避免一些编码问题
  10. returnDataFrame

数据查看、处理与分析

查看数据

  1. df.describe() 查看统计信息,根据数据类型的不同统计类别不同,numericstringobject
  2. df.head(n:int=5):默认查看前5行数据,返回n行数据集
  3. df.tail(n:int=5):默认查看后5行数据,返回n行数据集
  4. df.info() 格式查看,各列数据类型和缺失情况,数据集的行列数,数据集的大小,每一列的数据类型,以及有多少条非空数据。

数据分析

  1. # 查看是否有缺失值
  2. df.isnull() 查看数据是否为空
  3. print(df.isnull().sum().sort_values(axis=0,ascending=False))

列的增删改查

增加一列,用df[‘新列名’] = 新列值的形式,在原数据基础上赋值即可

  1. df['新列'] = range(1,len(df)+1) # 类似于字典

删除一列,drop函数制定删除对应的列,axis = 1表示针对列的操作,inplace为True,则直接在源数据上进行修改,否则源数据会保持原样。

  1. """
  2. axis指定删除行还是列,axis=1删除的是列,axis=0删除的是行
  3. inplace=True,remove操作替换df元数据。
  4. columns参数指定要删除的列
  5. index参数指定要删除的行
  6. """
  7. df.drop('新列',axis=1,inplace=True)

查看一列,用df[‘列名’]即可

  1. print(df['name'])

查看多列,用列表作为参数:df[[‘第一列’,’第二列’,’第三列’..]]

  1. print(df[['name','age','sex']])

对某列值进行整体的更改:df[‘旧列名’] = 某个值或者某列值,就完成了对原列数值的修改#

  1. # 修改列名
  2. df.columns = ['column1','column2','column3'...]

常用数据类型及其操作

1、字符串

字符串类型是最常用的格式之一,Pandas中字符串的操作和原生字符串操作几乎一模一样,唯一不同的是需要在操作前加上”.str”。

在常规实际应用中,我们可以先理解为object对应的就是str格式,int64对应的就是int格式,float64对应的就是float格式即可。

  1. # 数据清洗后要替换原来的值
  2. df['description'] = df['description'].str.strip() # 字符串两端去空格

2、 数值型

数值型数据,常见的操作是计算,分为与单个值的运算,长度相等列的运算。

  1. # 将价格列的数值除以100
  2. df['price'] = df['price'] / 100 # the same is true for other operations