Pandas常用数据结构

一、Pandas 概述

Pandas(Python Data Analysis Library)是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。它是使Python成为强大而高效的数据分析环境的重要因素之一。

Pandas专用于数据预处理和数据分析的Python第三方库,最适合处理大型结构化表格数据

  • Pandas是2008年Wes McKinney于AQR资本做量化分析师时创建
  • Pandas借鉴了R的数据结构
  • Pandas基于Numpy搭建,支持Numpy中定义的大部分计算
  • Pandas含有使数据分析工作更简单高效的高级数据结构和操作工具
  • Pandas底层用Cython和C做了速度优化,极大提高了执行效率

   1、Pandas引入约定

       import pandas as pd

   2、Pandas数据结构Pandas的核心为两大数据结构(Series 和 DataFrame),数据分析相关所有事物都是围绕着这两种结构进行的

  • Series:用于存储一个序列的一维数据
  • DataFrame:DataFrame作为更复杂的数据结构,则用于存储多维数据

二、Series 简介

 Series 是一个带有名称和索引的一维数组,在 Series 中包含的数据类型可以是整数、浮点、字符串、Python对象等。

   1、基础属性:

  • values:返回元素
  • index:返回索引
  • columns:返回列名
  • dtypes:返回类型
  • size:返回元素个数
  • ndim:返回维度数

  shape:返回数据形状(行列数目)

  (1)简单构建一个含索引和年龄的用户信息

import pandas as pd

info = pd.Series(data=[24,45,33,62])

print(info)

  (2)将索引自定义为名字,即将年龄与用户联系起来

import pandas as pd
# 构建索引
# name="user_index":为索引起一个名字
user_index=pd.Index(['Tom','Scott','Jass','Jame'],name="user_index")
# 构建Series
# name="user_info":为 Series 起个名字
user_info = pd.Series(data=[24, 45, 33, 62],index=user_index,name="user_info",dtype=float)

print(user_info)

   (3)Series 访问 Series 包含了 dict 的特点,也就意味着可以使用与 dict 类似的一些操作。我们可以将 index 中的元素看成是 dict 中的 key

    Pandas常用数据结构_第1张图片

    (4)Series 除了像 dict 外,也非常像 ndarray,这也就意味着可以采用切片操作

        Pandas常用数据结构_第2张图片

        Pandas常用数据结构_第3张图片

       (5)Series 与 ndarray 一样,也是支持向量化操作的。同时也可以传递给大多数期望 ndarray 的NumPy 方法。

        Pandas常用数据结构_第4张图片

三、DataFrame 简介

       DataFrame 是一个带有索引的二维数据结构,每列可以有自己的名字,并且可以有不同的数据类型。你可以把它想象成一个 excel 表格或者数据库中的一张表,DataFrame 是最常用的 Pandas 对象。

    1、基础属性:

  • values:返回元素
  • shape:返回数据形状(行列数目)
  • ndim:返回维度数
  • size:返回元素个数
  • dtypes:返回类型
  • columns:返回列名
  • index:返回索引

   2、DataFrame 创建

      (1)构建一个dict,将dict传递给data参数

        Pandas常用数据结构_第5张图片

      (2)先构建一个二维数组,然后再生成一个列名称列表

        Pandas常用数据结构_第6张图片

3、DataFrame 访问

      (1)访问行  -->  通过索引名  -->  loc方法

        Pandas常用数据结构_第7张图片

       (2)访问行  -->  通过行所在位置  -->  iloc方法

        Pandas常用数据结构_第8张图片

      (3)访问列  -->  通过属性(.列名)

        Pandas常用数据结构_第9张图片

      (4)访问列  -->  通过[column]

        Pandas常用数据结构_第10张图片

     (5)新增列:通过传入一个标量,Pandas 会自动帮我们广播来填充所有的位置

        Pandas常用数据结构_第11张图片

     (6)删除列:

        drop(labels, axis=0, level=None, inplace=False, errors='raise')

参数解释:

  • lables:接收string或array。代表删除的行或列的标签。无默认
  • axis:接收0或1,代表操作的轴向。默认为0
  • levels:接收int或者索引名。代表标签所在级别。默认为None
  • inplace:接收boolean。代表操作是否对原数据生效。默认为False

 

四、Pandas处理Excel数据

Pandas依赖处理Excel的xlrd模块,所以需要提前安装这个,安装命令是:

pip install xlrd

1、读取Excel文件的方式

      (1)默认读取第一个表单

  

     (2)通过指定表单名的方式来读取

     (3)通过表单索引来指定要访问的表单,0表示第一个表单

Pandas常用数据结构_第12张图片

2、Pandas操作Excel的行列

  (1)读取指定行

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx")
data = df.iloc[0].values #0表示第一行 这里读取数据并不包含表头,要注意哦!
print("获取的数据是:\n{0}".format(data))

 (2)读取指定的多行,数据会存在嵌套的列表里面:

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx")
data = df.iloc[[0,3]].values #表示第一行和第三行
print("获取的数据是:\n{0}".format(data))

 (3)读取指定的行列

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx")
data = df.iloc[0,2] #表示第一行第三列值
print("获取的数据是:\n{0}".format(data))

 (4)读取指定的多行多列值

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx")
data = df.iloc[[0,2],[0,1]] #表示第一行和第三行的第一列和第二列值
print("获取的数据是:\n{0}".format(data))

 (5)获取所有行的指定列

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx")
data = df.iloc[:,[0,1]] #表示所有行的第一列和第二列值
print("获取的数据是:\n{0}".format(data))

 (6)获取行号并打印输出

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx")
print("输出行号列表:",df.index.values)

 (7)获取列名并打印输出

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx")
print("输出列标题",df.columns.values)

 (8)获取指定行数的值

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx")
print("输出值",df.sample(3).values)#这个方法类似于head()方法以及df.values方法

 (9)获取指定列的值

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx")
print("输出值\n",df['姓名'].values)

 3、pandas处理Excel数据成为字典

import pandas as pd
#这个会直接默认读取到这个Excel的第一个表单
df = pd.read_excel("E:\课件\Python课件\数据分析\测试用数据\demo.xlsx",sheet_name="python")
test_data=[]
for i in df.index.values:#获取行号的索引,并对其进行遍历:
    #根据i来获取每一行指定的数据 并利用to_dict转成字典
    row_data=df.iloc[i,[0,1,2]].to_dict()
    test_data.append(row_data)
print("最终获取到的数据是:{0}".format(test_data))

 

五、Pandas处理CSV文件的数据

    1、什么是csv文件?

      csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开。csv文件用记事本和excel都能打开,用记事本打开显示逗号,用excel打开,没有逗号了,逗号都用来分列了,还可有Editplus打开。

    2、Pandas读取csv文件

import pandas as pd

file_path = 'E:\课件\Python课件\数据分析\测试用数据\loan.csv'
# 使用pd.read_csv读取数据
ratings = pd.read_csv(file_path,encoding="gb18030")
print(ratings)

# 查看数据的前几行
print("查看数据的前几行:\n ", ratings.head())

# 查看数据的形状(返回行数,列数)
print("查看数据的形状:\n ", ratings.shape)

# 查看列表列名
print("查看列表列名:\n ", ratings.columns)

# 查看索引列
print("查看索引列:\n ", ratings.index)

# 查看每列的数据类型
print("查看每列的数据类型:\n ", ratings.dtypes)

六、Pandas读取txt文件

import pandas as pd

file_path = 'E:\课件\Python课件\数据分析\测试用数据\exam.txt'

# 使用pd.read_csv读取数据
pvuv = pd.read_csv(file_path, sep='\t', header=None, names=['地址', '编号', '逻辑值'],encoding="gb18030")
"""
sep: 指定列的分隔符
header: 没有标题行设置为None
names: 自定义列名
"""
print(pvuv)

# 查看数据的前几行
print("查看数据的前几行:\n ", pvuv.head())

# 查看数据的形状(返回行数,列数)
print("查看数据的形状:\n ", pvuv.shape)

# 查看列表列名
print("查看列表列名:\n ", pvuv.columns)

# 查看索引列
print("查看索引列:\n ", pvuv.index)

你可能感兴趣的:(Python,数据分析,python)