8. df.info()函数-查看DataFrame对象信息

文摘   教育   2023-09-06 20:05   云南  

【目录】


  • 1. pd.DataFrame()创建DataFrame对象

  • 2. df.to_excel()将DataFrame对象写入xlsx文件

  • 3. 非空数据

  • 4. df.info()函数结果演示

  • 5. df.info()语法解析

  • 6. 课堂练习


【正文】


学习时间:30分钟。

1. pd.DataFrame()创建DataFrame对象

【知识回顾】

DataFrame是Pandas库中的一个数据结构,它类似于Excel表格,可以存储和处理大量的数据。

【pd.DataFrame()语法】

pd.DataFrame(data,index,columns)

【课堂练习】

创建一个DataFrame对象。

列索引为:姓名、年龄、成绩。

内容随意填充。

【代码示例】

# 导入pandas库并简写为pd
import pandas as pd

# 要传入的数据类型为字典   
# 字典的3个键姓名、年龄、成绩是DataFrame对象的列索引
# 字典的值是DataFrame对象的数据 
data = {
    '姓名': ['张三''李四''王五''赵六''钱七''孙八''周九''吴十''郑十一''马十二'],
    '年龄': [18192021222324252627],
    '成绩': [85927889958790938088]
}

# 实例化类创建对象:对象名 = 类名()
# df是对象名,DataFrame是类名
df = pd.DataFrame(data)

# 输出DataFrame对象
print(df)

【终端输出】

    姓名  年龄  成绩
0 张三 18 85
1 李四 19 92
2 王五 20 78
3 赵六 21 89
4 钱七 22 95
5 孙八 23 87
6 周九 24 90
7 吴十 25 93
8 郑十一 26 80
9 马十二 27 88

代码没有对行索引进行明确。

0 1 2 ...9是默认行索引。

姓名、年龄、成绩是列索引。

2. df.to_excel()将DataFrame对象写入xlsx文件

【代码示例】

# 导入pandas库并简写为pd
import pandas as pd

# 要传入的数据类型为字典   
# 字典的3个键姓名、年龄、成绩是DataFrame对象的列索引
# 字典的值是DataFrame对象的数据  
data = {
    '姓名': ['张三''李四''王五''赵六''钱七''孙八''周九''吴十''郑十一''马十二'],
    '年龄': [18192021222324252627],
    '成绩': [85927889958790938088]
}

# 创建对象:对象名 = 类名()
# df是对象名,DataFrame是类名
df = pd.DataFrame(data)

# df是DataFrame对象名
# to_excel是DataFrame对象的一个方法
# 作用是将DataFrame写入xlsx文件
# 示例1.xlsx是文件名及文件的相对路径
# index=False表示不保存索引列
df.to_excel('示例1.xlsx', index=False)

我的代码所在的绝对路径如下:

D:\安迪笔记\4.数据分析\8\8.py

运行上面的代码,在代码所在的文件夹D:\安迪笔记\4.数据分析\8下生成了一个名为示例1.xlsx的文件。

打开示例1.xlsx,内容如下所示:

8-1

【修改示例1.xlsx文件】

为了后面讲解缺失值概念,我将表格内容修改如下:

8-2

保存并将文件命名为示例2.xlsx

3. 非空数据

非空数据指的是在某个数据集或数据结构中,该数据项不为空或不缺失的情况。

具体来说,非空数据是指存在有效值、有效信息或有效内容的数据。

示例2.xlsx表格中:
姓名列10个单元格都有内容,则表示该列10个非空数据。
年龄列有8个单元格有内容,表示该列有8个非空数据。
成绩列有7个单元格有内容,表示该列有7个非空数据。

8-3

4. df.info()函数结果演示

read_excel()函数是pandas库中用于读取Excel文件的函数。

【语法】

pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)

【参数】

  • io:要读取的Excel文件的路径(字符串)或者可迭代对象,例如文件对象、Excel表格URL、Excel文件中的表名等。

【目标任务】

pd.read_excel读取示例2.xlsx,得到了一个DataFrame对象。

代码最后添加一个函数df.info(),看看会输出什么。

【代码示例】

# 导入pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\8\示例2.xlsx"

# 调用函数:库名.函数名()
# pd是库名
# read_excel是函数名
# io参数=file,file是路径
df = pd.read_excel(file)

df.info()

【终端输出】

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10 entries, 0 to 9
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 姓名 10 non-null object
1 年龄 8 non-null float64
2 成绩 7 non-null float64
dtypes: float64(2), object(1)
memory usage: 368.0+ bytes
8-4

【输出结果解析】

<class 'pandas.core.frame.DataFrame'>

DataFrame对象的类型是pandas.core.frame.DataFrame。

RangeIndex: 10 entries, 0 to 9

DataFrame有10行数据,行索引从0到9。

Data columns (total 3 columns):

DataFrame有3列数据。

Column  Non-Null Count  Dtype  

Column 下面的内容表示列名。

Non-Null Count 表示非空计数。

Dtype表示数据类型。

0   姓名      10 non-null     object 
1   年龄      8 non-null      float64
2   成绩      7 non-null      float64
  • 姓名列有10个非空数据,类型是object,即字符串类型。
  • 年龄列有8个非空数据,类型是float64,即浮点数类型。
  • 成绩列有7个非空数据,类型是float64,即浮点数类型。

在输出的信息中,我们可以看到数据的总量为10。

但年龄、成绩2列的非空数据分别为8和7,都比数据总量10要小。

dtypes: float64(2), object(1)

两列的数据类型是float64(浮点数),另外一列的数据类型是object(字符串)。

memory usage: 368.0+ bytes

整个DataFrame占用368.0字节的内存。

5. df.info()语法解析

【作用】

df.info()函数可以提供关于DataFrame对象的详细信息,包括列名、非空值数量、数据类型等。

【语法】

df.info(verbose=True, buf=None, max_cols=None, memory_usage=True, null_counts=True)

【参数】

  • verbose(可选):控制输出的详细程度。默认为 True,会显示所有列的信息。如果设置为 False,则只显示索引类型、列数和非空值的数量。
  • buf(可选):指定输出结果的缓冲区,默认为 None。
  • max_cols(可选):控制输出的最大列数。如果 DataFrame 的列数超过此值,则会省略一部分列的信息。默认为 None,表示不限制列数。
  • memory_usage(可选):控制是否显示内存使用情况。默认为 True,会显示每列的内存使用量。
  • null_counts(可选):控制是否计算并显示每列的缺失值数量。默认为 True,会显示每列的缺失值数量

注意df.info的参数都是可选参数,因此我们可以不传递参数。

初学者以上参数仅做了解即可。

【返回值】

df.info函数会显示 DataFrame对象的以下信息:

  • 列的索引名称。
  • 每列的数据类型。
  • 每列的非空值数量。
  • 占用的系统空间。
  • 每列的内存使用量(如果设置了 memory_usage=True)
  • 每列的缺失值数量(如果设置了 null_counts=True)

6. 课堂练习

在数据分析中,我们通常会用df.info()查看下文件的数据情况。

当非空数据与数据总量不一致时,说明这份数据有可能存在缺失值。

文件如果存在大量缺失值,我们要先处理这些缺失值才能进行后续的分析。

【目标任务】

示例3.xlsx中存储了10万条销售数据,请你用df.info函数输出该文件的相关信息。

【步骤分析】


  1. 确定要操作的文件的路径。

    1. read_excel函数读取Excel文件,得到一个DataFrame对象。

    1. df.info()查看DataFrame对象相关信息。

    【代码示例】

    # 导入pandas库并简写为pd
    import pandas as pd

    # 文件的绝对路径
    file = r"D:\安迪笔记\4.数据分析\8\示例3.xlsx"

    # 调用函数:库名.函数名()
    # pd是库名
    # read_excel是函数名
    # io参数=file,file是路径
    df = pd.read_excel(file)

    # 查看DataFrame对象相关信息
    df.info()

    【终端输出】

    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 100000 entries, 0 to 99999
    Data columns (total 6 columns):
    # Column Non-Null Count Dtype
    --- ------ -------------- -----
    0 订单编号 100000 non-null object
    1 日期 99014 non-null object
    2 省份 99014 non-null object
    3 订单量 99018 non-null float64
    4 单价 99016 non-null float64
    5 销售额 99018 non-null float64
    dtypes: float64(3), object(3)
    memory usage: 4.6+ MB

    【输出结果分析】

    RangeIndex: 100000 entries, 0 to 99999

    DataFrame有10万条数据,行索引从0到9999。

    Data columns (total 6 columns):

    DataFrame有6列数据。

    0 订单编号    100000 non-null  object 
    1   日期      99014 non-null   object 
    2   省份      99014 non-null   object 
    3   订单量     99018 non-null   float64
    4   单价      99016 non-null   float64
    5   销售额     99018 non-null   float64
    • 订单编号有10万个非空数据,类型是object,即字符串类型。
    • 日期列有99014个非空数据,类型是object,即字符串类型。
    • 省份列有99014个非空数据,类型是object,即字符串类型。
    • 订单量列有99018个非空数据,类型是float64,即浮点数类型。
    • 单价列有99016个非空数据,类型是float64,即浮点数类型。
    • 销售额列有99018个非空数据,类型是float64,即浮点数类型。

    【温馨提示】

    示例表格文件和代码源文件都存在PDF所在的文件夹里,可以自己实操练习。

    没有PDF文件的可以联系作者获取表格文件。


    安迪python学习笔记
    python学习笔记,适合初学者。
     最新文章