怎么做切片网站,天津卓信软件开发有限公司,万域网站建设,手机网站注意哪些问题吗文章目录 一. Pandas DataFrame简介二. 加载数据集1. 目的2. 步骤① 导包② 加载csv③ 查看数据类型及属性④ Pandas与Python常用数据类型对照 三. 查看部分数据1. 根据列名加载部分列数据① 加载一列数据#xff0c;通过df[列名]方式获取② 加载多列数据#xff0c;通过df[[… 文章目录 一. Pandas DataFrame简介二. 加载数据集1. 目的2. 步骤① 导包② 加载csv③ 查看数据类型及属性④ Pandas与Python常用数据类型对照 三. 查看部分数据1. 根据列名加载部分列数据① 加载一列数据通过df[列名]方式获取② 加载多列数据通过df[[列名1,列名2,...]] 2. 按行加载部分数据① head()③ tail()② loc:通过行索引获取指定行数据④ loc:通过索引标签获取指定多行数据⑤ iloc:通过行号获取行数据 3. 获取指定行/列数据① loc和iloc属性既可以用于获取列数据也可以用于获取行数据② 使用 loc 获取数据中的1列/几列③ 使用 iloc 获取数据中的1列/几列④ 如果loc 和 iloc 传入的参数弄混了会报错⑤ 通过range 生成序号结合iloc 获取连续多列数据⑥ 在 iloc中使用切片语法获取几列数据⑦ 使用 loc/iloc 获取指定行指定列的数据⑧ 获取多行多列 四. 分组和聚合计算1. 分组和聚合介绍2. 分组方式3. 分组频数计算 五. 基本绘图 一. Pandas DataFrame简介
Pandas是用于数据分析的开源Python库可以实现数据加载清洗转换统计处理可视化等功能DataFrame和Series是Pandas最基本的两种数据结构DataFrame用来处理结构化数据SQL数据表Excel表格Series用来处理单列数据也可以把DataFrame看作由Series对象组成的字典或集合
二. 加载数据集
1. 目的
做数据分析首先要加载数据并查看其结构和内容对数据有初步的了解查看行列数据分布情况查看每一列中存储信息的类型
2. 步骤
① 导包 ② 加载csv
df pd.read_csv(data/scientists.csv)
df.head()csv文件Comma-Separated Values 也可以通过指定分隔符加载tsv文件
df pd.read_csv(data/scientists.tsv, sep\t)
df.head()tsv文件 Tab-Separated Values
③ 查看数据类型及属性 查看df类型 type(df) pandas.core.frame.DataFrame查看df的shape属性可以获取DataFrame的行数列数 df.shape(8, 5)查看df的columns属性获取DataFrame中的列名 df.columnsIndex([Name, Born, Died, Age, Occupation], dtypeobject)df.indexIndex([Name, Born, Died, Age, Occupation], dtypeobject)查看df的dtypes属性获取每一列的数据类型 df.dtypesName objectBorn objectDied objectAge int64Occupation objectdtype: objectdf.info()df.info()df.describe()④ Pandas与Python常用数据类型对照 三. 查看部分数据
1. 根据列名加载部分列数据
① 加载一列数据通过df[‘列名’]方式获取
df pd.read_csv(data/nobel_prizes.csv)
dfcountry_df df[category]
country_df② 加载多列数据通过df[[‘列名1’,‘列名2’,…]]
注意这里是两层[] 可以理解为 df[列名的list]
subset df[[category,year]]
subset2. 按行加载部分数据
① head()
df.head()③ tail()
df.tail(n1)② loc:通过行索引获取指定行数据 行索引介绍 先打印前5行数据 观察第一列 print(df.head()) 最左边一列是行号也就是DataFrame的行索引 Pandas默认使用行号作为行索引 loc属性传入行索引来获取DataFrame的部分数据一行或多行
④ loc:通过索引标签获取指定多行数据
df.loc[0]
df.loc[99]
last_row_index df.index[-1]
df.loc[last_row_index]⑤ iloc:通过行号获取行数据 在当前案例中使用iloc 和 loc效果是一样的 需要注意的是iloc传入的是索引的序号loc是索引的标签 使用iloc时可以传入-1来获取最后一行数据使用loc的时候不行 df.iloc[-1]3. 获取指定行/列数据
① loc和iloc属性既可以用于获取列数据也可以用于获取行数据
df.loc[[行][列]] df.iloc[[行][列]]
df pd.read_csv(data/scientists.csv)
dfdf.loc[[0],[Name]]df.iloc[[0],[0]]② 使用 loc 获取数据中的1列/几列
df.loc[[所有行],[列名]] 取出所有行可以使用切片语法 df.loc[ : , [列名]]
df.loc[:,[Name]]df.loc[:,[Name,Age]]③ 使用 iloc 获取数据中的1列/几列
df.iloc[:,[列序号]] # 列序号可以使用-1代表最后一列
df.iloc[:,[1,3,-1]]④ 如果loc 和 iloc 传入的参数弄混了会报错
loc 只能接受行/列 的名字 iloc只能接受行/列的序号
⑤ 通过range 生成序号结合iloc 获取连续多列数据
tmp_range list(range(4))
print(tmp_range)
df.iloc[:, tmp_range]tmp_range list(range(1,3))
print(tmp_range)
df.iloc[:, tmp_range]⑥ 在 iloc中使用切片语法获取几列数据
顾头不顾尾
df.iloc[:,2:4]df.iloc[:,0:4:2]⑦ 使用 loc/iloc 获取指定行指定列的数据
df.loc[0,Name]
df.iloc[0,0]Rosaline Franklin⑧ 获取多行多列
df.loc[2:6,[Name,Age]]df.iloc[2:6,[0,3]]四. 分组和聚合计算
1. 分组和聚合介绍
在我们使用Excel或者SQL进行数据处理时Excel和SQL都提供了基本的统计计算功能当我们再次查看gapminder数据的时候可以根据数据提出几个问题 每一年的平均预期寿命是多少每一年的平均人口和平均GDP是多少如果我们按照大洲来计算每年个大洲的平均预期寿命平均人口平均GDP情况又如何在数据中每个大洲列出了多少个国家和地区
2. 分组方式
对于上面提出的问题需要进行分组-聚合计算 先将数据分组每一年的平均预期寿命问题 按照年份将相同年份的数据分成一组对每组的数据再去进行统计计算如求平均求每组数据条目数频数等再将每一组计算的结果合并起来 可以使用DataFrame的groupby方法完成分组/聚合计算
df.groupby(year)[lifeExp].mean()将前面一行代码拆开逐步分析 通过df.groupby(‘year’)先创一个分组对象从分组之后的数据DataFrameGroupBy中传入列名进行进一步计算返回结果为一个 SeriesGroupBy 其内容是分组后的数据对分组后的数据计算平均值
如果想对多列值进行分组聚合代码也类似
df.groupby([year,continent])[lifeExp,gdpPercap].mean()3. 分组频数计算
在数据分析中一个常见的任务是计算频数 可以使用 nunique 方法 计算Pandas Series的唯一值计数可以使用 value_counts 方法来获取Pandas Series 的频数统计在数据中每个大洲列出了多少个国家和地区
df.groupby(continent)[country].nunique()df.groupby(continent)[country].unique()df[country].value_counts()五. 基本绘图
视化在数据分析的每个步骤中都非常重要 在理解或清理数据时可视化有助于识别数据中的趋势
df.groupby(year)[lifeExp].mean().plot()