8. df.info()函数——显示DataFrame对象信息
包含在主题中
数据分析
【目录】
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(数据、索引、列)
【课堂讲授】
创建一个DataFrame 对象。
列索引是姓名、年龄和年级。
请根据需要填写详细信息。
[代码示例]
#导入pandas库并缩写为pd
导入pandasaspd
#传递的数据类型是字典
#字典中的三个键name、age、grade是DataFrame对象的列索引。
#字典值是DataFrame对象的数据
数据={
‘姓名’:[‘张三’、‘李四’、‘王五’、‘赵六’、‘钱七’、‘孙霸’、‘周九’、‘吴石’、‘郑四一’、 ‘ 软管12”],
‘年龄’:[18,19,20,21,22,23,24,25,26,27],
《成就》:[85,92,78,89,95,87,90,93,80,88]
}
#通过实例化类来创建对象:对象名=类名()
#df 是对象名称,DataFrame 是类名称。
df=pd.DataFrame(数据)
#输出一个DataFrame对象
打印(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 软管12 27 88
此代码不会显式显示行索引。
0 1 2 .9 是默认行索引。
姓名、年龄和年级是列索引。
2. df.to_excel() 将DataFrame对象写入xlsx文件【代码示例】
#导入pandas库并缩写为pd
导入pandasaspd
#传递的数据类型是字典
#字典中的三个键name、age、grade是DataFrame对象的列索引。
#字典值是DataFrame对象的数据
数据={
‘姓名’:[‘张三’、‘李四’、‘王五’、‘赵六’、‘钱七’、‘孙霸’、‘周九’、‘吴石’、‘郑四一’、 ‘ 软管12”],
‘年龄’:[18,19,20,21,22,23,24,25,26,27],
《成就》:[85,92,78,89,95,87,90,93,80,88]
}
#创建对象:对象名=类名()
#df 是对象名称,DataFrame 是类名称。
df=pd.DataFrame(数据)
#df 是DataFrame 对象名称
#to_excel是DataFrame对象的一个方法
#将数据帧写入xlsx文件的函数
#示例1.xlsx是文件名和文件的相对路径。
#index=False 表示不保存索引列
df.to_excel(‘示例1.xlsx’,index=False)
我的代码所在的绝对路径是:
D:\Andy Notes\4.数据分析\8\8.py
运行上述代码将在代码所在的文件夹D:\Andy Notes\4中生成一个名为Example 1.xlsx的文件。
例1、打开xlsx,内容为:
8-1 【示例1.修改xlsx文件】
后面为了解释缺失值的概念,我将表格内容修改如下:
8-2 将文件另存为“示例2.xlsx”。
3.非空数据非空数据是指在特定数据集或数据结构内数据项不为空或缺失的情况。
具体来说,非空数据是指具有有效值、有效信息或有效内容的数据。
示例2.xlsx表:
如果名称列中的10 个单元格都有内容,则意味着该列中有10 条非空数据。
年龄列有八个包含内容的单元格。这意味着该列中有8 个非空数据。
成绩列有七个包含内容的单元格。这意味着该列中有7条非空数据。
8-34. 演示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读取Example 2.xlsx并获取DataFrame对象。
在代码末尾添加函数df.info() 并查看它打印的内容。
[代码示例]
#导入pandas库并缩写为pd
导入pandasaspd
# 文件的绝对路径
file=r’D:\Andy Notes\4.数据分析\8\示例2.xlsx’
#函数调用:库名.函数名()
#pd 是库名称
#read_excel是函数名
#io参数=文件,文件为路径
df=pd.read_excel(文件)
df.info()
[终端输出]
类“pandas.core.frame.DataFrame”
RangeIndex: 10 个条目,0-9
数据列(共3列):
# 列非空计数Dtype
— —— ————– —–
0 名称10 非空对象
1 年龄8 非空float64
2 得分7 非空float64
dtypes: float64(2), 对象(1)
内存使用量: 368.0+ 字节
8-4【输出结果分析】
类“pandas.core.frame.DataFrame”
DataFrame 对象的类型为pandas.core.frame.DataFrame。
RangeIndex:10 条目,0 到9
DataFrame 有10 行数据,行索引从0 到9。
数据列(共3列):
DataFrame 具有三列数据。
列非空计数D类型
列以下内容代表列名。
Non-Null Count 表示非空计数。
Dtype 表示数据类型。
0name10 非空对象
1age8 非nullfloat64
2 得分7 非nullfloat64
name列有10个非空数据,类型为Object(String类型)。 Age 列有8 个非空数据,类型为float64,即浮点数。 Score列有7个非空值,类型为float64,即浮点数。在输出信息中可以看到数据总量为10。
然而,年龄和年级列中的非空数据分别为8 和7,两者均小于数据总量10。
dtypes:float64(2),对象(1)
两列的数据类型是float64(浮点数),另一列的数据类型是object(字符串)。
内存使用:368.0+字节
整个数据帧占用内存368.0字节。
5. df.info()语法分析【功能】
df.info() 函数可以提供有关DataFrame 对象的详细信息,例如列名、非空值的数量和数据类型。
【语法】
df.info(verbose=True,buf=None,max_cols=None,memory_usage=True,null_counts=True)
[范围]
详细(可选):控制输出的详细程度。默认值为True,显示所有列的信息。当设置为False时,仅显示索引类型、列数和非空值数。 buf(可选):指定输出结果的缓冲区。默认为“无”。 max_cols(可选):控制输出中的最大列数。如果DataFrame 的列数多于该值,则某些列信息将被省略。默认为“无”。这意味着列数没有限制。 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函数输出文件相关信息。
【步骤分析】
确定您要使用的文件的路径。
read_excel函数读取Excel文件并获取DataFrame对象。
df.info() 显示DataFrame 对象的相关信息。 [代码示例]
#导入pandas库并缩写为pd
导入pandasaspd
# 文件的绝对路径
file=r’D:\Andy Notes\4.Data Analysis\8\Example 3.xlsx’
#函数调用:库名.函数名()
#pd 是库名称
#read_excel是函数名
#io参数=文件,文件为路径
df=pd.read_excel(文件)
#显示DataFrame对象的相关信息
df.info()
[终端输出]
类“pandas.core.frame.DataFrame”
RangeIndex: 100000 个条目,0 到99999
数据列(共6列):
# 列非空计数Dtype
— —— ————– —–
0 订单号100000 非空对象
1 日期99014 非空对象
2 状态99014 非空对象
3 订单数量99018 非空float64
4 单价99016 非空float64
5 销售额99018 非空float64
dtypes: float64(3), 对象(3)
内存使用量: 4.6+ MB
【输出结果分析】
RangeIndex:100000 个条目,0 到99999
DataFrame有10万条数据,行索引范围为0到9999。
数据列(共6列):
DataFrame 有6 列数据。
0 订单号100000 个非空对象
1Date99014 非空对象
2province99014 非空对象
3 订单数量99018non-nullfloat64
4 单价99016 非nullfloat64
5 销售99018 非nullfloat64
订单号有10万个非空值,类型为Object(String类型)。日期列包含99014个非空数据,其类型为string类型的对象。 state列有99014个非空数据,类型为object(字符串类型)。订单数量列有99018个非空数据,类型为float64,为浮点数类型。单价列有99016个非空数据,其类型为float64,即浮点数。 sales列有99018个非空数据,其类型为float64,即浮点数。 【友情提示】
示例表文件和代码源文件与PDF 存储在同一文件夹中,因此您可以自行练习。
如果您没有PDF文件,请联系作者获取表单文件。