一、介绍

pandas作为python的一个常用扩展库,其基础是numpy,numpy是一个运行速度非常快的数学库,主要用于数组计算,而pandas使数据预处理、清洗、分析工作变得更快更简单,主要用于数据分析。Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。

二、数据类型

pandas有两种数据类型:

Series

series是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。

pandas.Series( data, index, dtype, name, copy)
  • data:一组数据(ndarray 类型)。

  • index:数据索引标签,如果不指定,默认从 0 开始。

  • dtype:数据类型,默认会自己判断。

  • name:设置名称。

  • copy:拷贝数据,默认为 False。

示例:

import pandas as pd

data = [1, 2, 3]
index = [2,3,4]
myvar = pd.Series(data,index)

print(myvar)

输出:

2    1
3    2
4    3
dtype: int64

DataFrame

  • DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。
pandas.DataFrame( data, index, columns, dtype, copy)
  • data:一组数据(ndarray、series, map, lists, dict 等类型)。

  • index:索引值,或者可以称为行标签。

  • columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。

  • dtype:数据类型。

  • copy:拷贝数据,默认为 False。

示例:

import pandas as pd

data = [['zhangsan',20],['lisi',21],['wangma',23]]

columns = ['name','Age']

df = pd.DataFrame(data,columns=columns)

print(df)

输出:

       name  Age
0  zhangsan   20
1      lisi   21
2    wangma   23

三、CSV文件处理

函数名 功能
pandas.read_csv('file') 读取csv文件 返回类型DataFrame
pandas.read_excel('file') 读取excel文件 返回类型DataFrame
df.to_csv('file') 将DataFrame保存为csv文件
df.to_excel('file') 将DataFrame保存为excel文件

四、数据处理

  • df:DataFrame类型数据
函数名 功能 备注
df.head(n) 读取df前n(默认5)行
df.tail(n) 读取df末尾n(默认5)行
df.describe() 获取描述统计信息
df.info() 获取df的基本信息
df.mean() 求均值(默认按行) 传参axis=1按列
df.median() 求中位数(默认按行) 传参axis=1按列
df.sum() 求和(默认按行) 传参axis=1按列
df.loc[] 按索引获取值
df.iloc[] 按位置获取值
df[] 按列名获取值
df.shape 获取行列 属性,非方法
df.drop[] 删除数据
df.duplicated() 判断是否有重复
df.drop_duplicated() 删除重复 inplace=True
df[] 按列名获取值

五、数据清洗

1、重命名

#行,列重命名
df.rename( mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False, level=None, errors=‘ignore’)
  • mapper:dict-like or function,方法
  • index:dict-like or function,指定哪个索引
  • columns:dict-like or function,指定哪个列名,一般是字典形式,如:{'name':‘姓名’},name是要替换的久列名,姓名是替换后的列名
  • axis:{0 or ‘index’, 1 or ‘columns’}, default 0,如果参数中出现了columns而没有出现index,则axis默认等于1,其实这个参数一般不用我们自己设置
  • copy:bool, default True
  • inplace:bool, default False :是否覆盖原来的数据
  • level:int or level name, default None
  • errors:{‘ignore’, ‘raise’}, default ‘ignore’

示例:

import pandas as pd

data = {
		'A': [1, 2, 3],
		'B': [4, 5, 6],
		'C': [7, 8, 9]
}
df = pd.DataFrame(data)
df.rename(columns={'A':'a', 'B':'b', 'C':'c'}, inplace = True)
print(df)

输出:

   a  b  c
0  1  4  7
1  2  5  8
2  3  6  9

2、缺省值删除

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
  • axis:默认为 0,表示逢空值剔除整行,如果设置参数 axis=1 表示逢空值去掉整列。
  • how:默认为 'any' 如果一行(或一列)里任何一个数据有出现 NA 就去掉整行,如果设置 how='all' 一行(或列)都是 NA 才去掉这整行。
  • thresh:设置需要多少非空值的数据才可以保留下来的。
  • subset:设置想要检查的列。如果是多个列,可以使用列名的 list 作为参数。
  • inplace:如果设置 True,将计算得到的值直接覆盖之前的值并返回 None,修改的是源数据。

示例:

new_df = df.dropna()
df.dropna(subset=[inplace = True)
df.dropna(subset=['ST_NUM'], inplace = True) #去除'ST_NUM'列有空值的行
df.fillna(123, inplace = True) #将空值替换为123
 posted on 2022-01-14 21:04  快乐的大李  阅读(281)  评论(0编辑  收藏  举报