内容正文:
第四章 结构化数据处理
第一部分:Excel基本操作
一、公式的编辑
1.公式必须等号“=”开头,乘号为“*”,除号为“/”,括号为“()”。乘号不能省略,不能用中括号[]。比如公式“=((A2+B2)/2)-5”,不能写成“=[(A2-B2)/2]-5”。如果单元格格式被设置成“文本”,输入公式会无效(被当做文本字符)。
2.Excel常用的函数有Sum(数据区域)、Average(数据区域)、Max(数据区域)、Min(数据区域)等。多个不连续区域中间用逗号分隔,比如“=Sum(B2:D2,F2)”。Excel中函数不区分大小写。
3.编辑的公式引用的空白单元格,空白单元格当作0处理。比如公式“=A2/B2”,如果B2为空白单元格,此时除数为0,会出现“#DIV/0!”错误提示。而函数计算时会自动忽略非数字类型单元格和空白单元格。
4.公式相对引用:在单元格C2中输入公式“=A2*5+B2”,将C2中内容复制粘贴到E3单元格后,公式会自动变成“=C3*5+D3”。因为单元格E3相对C2,增加2列,增加1行。公式中的行号和列号会分别自动增2和增1,即“=A2*5+B2”变成“=C3*5+D3”。
5.行绝对引用和列绝对引用。单元格中输入公式“=B2/F2",自动填充到下一个单元格,下一个单元格中公式为“=B3/F3”(行号自动加1):如果不想让某个行号发生变化,则需要在行号前加绝对引用符号$,如“=B2/F$2”、下个单元格公式则为“=B3/F$2”。同理自动填充到右边单元格,列号会自动递增公式由“=B2/F2”变为“=C2/G2”(列号递增)。如果不想让某个列号发生变化,则需要在列号前加绝对引用符号$,比如“=B2/$F2”,右单元格公式则为“=C2/$F2”。
二、图表的绘制
1.图表数据区域的解题方法:
(1)根据X轴,确定数据区域A3:A11
(2)根据Y轴,确定数据区域C3:C11
(3)根据图例,确定标题区域C2
(4)最后根据高平齐长对正,确定A2
最终确定数据区域为A2:A11,C2:C11,图表标题与选区无关
2.图表和数据区域中内容相互关联:改变区域A2:A11,C2:C11中的某个单元格内的内容,图表内容也会自动更新。图表数据区域内的数据排序后,图表也会发生变化,筛选后,不符合筛选结果的内容不会在图表上显示。在图表数据区域外操作,图表不会发生变化。
第二部分:pandas中的 Series 和 DataFrame
一、一维结构Series
Series是一种一维的数据结构,包含一个数组的数据和一个与数据关联的索引(index),索引默认是从0递增的整数。列表、字段等可以来创建Serise数据结构,与列表不同的是,Series的索引可以指定,类型可以为字符串类型。values
index
1.创建一个Series对象
import pandas as pd
s1 = pd.Series([166,178,180])
print(s1)
s2 = pd.Series([166,178,180],index=["s1","s2","s3"])
print(s2)
s2 = pd.Series({"s1":166,"s2":178,"s3":180})
print(s2)
2.Series对象常用属性
print(s2.index)
Index(['s01','s02','s03'], dtype='object')
print(s2.values)
[166 178 180]
【注意】通过循环遍历查看s2时,默认输出s2.values
3.取值或修改Series对象
print(s2["s01"])
166
print(s2[0])
【注意】s2的索引值创建时被指定为字符串,所以可以使用指定索引访问,但此时默认索引依然可以使用。
s2[1] = 174
#s2["s02"]=174等价
print(s1)
二、二维结构DataFrame
DataFrame是一种二维结构,由一个索引列(index)和若干个数据列组成,每个数据列可以是不同类型。DataFrame可以看作是共享同一个index的Series的集合。
1.创建DataFrame对象
import pandas as pd
list1 = [["张三","男",12],
["李四","女",15],
["王五","男",13]]
df1 = pd.DataFrame(list1,columns=["姓名","性别","年龄"])
values
index
columns
dict1 = {"姓名":["张三","李四","王五"],
"年龄":[12,15,13],
"性别":