三、分割:即Excel过滤器 描述性报告是关于数据子集和聚合的,当需要初步了解数据时,通常使用过滤器来查看较小的数据集或特定的列,以便更好的理解数据。...2、查看多列 ? 3、查看特定行 这里使用的方法是loc函数,其中我们可以指定以冒号分隔的起始行和结束行。注意,索引从0开始而不是1。 ? 4、同时分割行和列 ? 5、在某一列中筛选 ?...9、用多个条件筛选多列数据 输入应为列一个表,此方法相当于excel中的高级过滤器功能: ? 10、根据数字条件过滤 ? 11、在Excel中复制自定义的筛选器 ?...12、合并两个过滤器的计算结果 ? 13、包含Excel中的功能 ? 14、从DataFrame获取特定的值 ?...有四种合并选项: left——使用左侧DataFrame中的共享列并匹配右侧DataFrame,N/A为NaN; right——使用右侧DataFrame中的共享列并匹配左侧DataFrame,N/A为
通常情况下,[]常用于在DataFrame中获取单列、多列或多行信息。具体而言: 当在[]中提供单值或多值(多个列名组成的列表)访问时按列进行查询,单值访问不存在列名歧义时还可直接用属性符号" ....例如,当标签列类型(可通过df.index.dtype查看)为时间类型时,若使用无法隐式转换为时间的字符串作为索引切片,则引发报错 ? 切片形式返回行查询,且为范围查询 ?...切片类型与索引列类型不一致时,引发报错 2. loc/iloc,可能是除[]之外最为常用的两种数据访问方法,其中loc按标签值(列名和行索引取值)访问、iloc按数字索引访问,均支持单值访问或切片查询...语法执行数据访问的方式,这对熟悉SQL的使用者来说非常有帮助!...在DataFrame中,filter是用来读取特定的行或列,并支持三种形式的筛选:固定列名(items)、正则表达式(regex)以及模糊查询(like),并通过axis参数来控制是行方向或列方向的查询
如果两个DataFrame的列名完全相同,使用outer合并方式,效果是将两个DataFrame按行合并到一起。...on参数指定的列必须在两个被合并DataFrame中都有,否则会报错。 on参数也可以指定多列,合并时按多个列进行连接。 ? 在合并时,只有多个列的值同时相等,两个DataFrame才会匹配上。...validate: 用于指定两个DataFrame连接列的对应关系,有one_to_one(一对一),one_to_many(一对多),many_to_one(多对一),many_to_many(多对多...many_to_many: 两个DataFrame连接列中的值都可以不唯一。 ? 使用多对多的对应方式,任何情况都满足,合并不会报错。...如果需要本文代码,可以点击关注公众号“Python碎片”,然后在后台回复“pandas13”关键字获取完整代码。
str为转化为字符串查询。...多DataFrame拼接 ? ?...多DataFrame的查询主要是解决SQL中join和concat的问题,python中主要使用merge和concat来实现对应的功能具体写法如下: Merge的用法:merge主要是用作按行拼接,类似于...几种常用的用法有: 单列分组:然后按照另一列数据计算相应值: print(data1.groupby('a')['b'].mean()) 多列分组:然后按照另一列数据计算相应值: Agg的作用即为封装对应的函数...print(data1.groupby(['a','b']).agg('mean')) 多列分组:然后按照多列分别计算相应值: data1 = pd.DataFrame([['1','23',3, 5
; 较高维数据结构是较低维数据结构的容器,Panel 是 DataFrame 的容器,DataFrame是 Series 的容器; 如何使用Pandas #!...[0:3]) # 按标签选择 print(df.loc[dates[0]]) print(df.loc[:,['A','B']]) print('获取某一个特定值:\n', df.at[dates[0]...:\n', pd.DataFrame(dict_series)) # 列选择,列添加,列删除 df = pd.DataFrame(dict_series) dict_series = {'First'...# 5、split(' ') 用给定的模式拆分每个字符串。 # 6、cat(sep=' ') 使用给定的分隔符连接系列/索引元素。...; right 使用右侧对象的键; outer 使用键的联合; inner 使用键的交集 # --*--coding:utf-8--*-- import pandas as pd left = pd.DataFrame
DataFrame,数据使用被调用的表。...df_temp.reindex_like(df[0:5][['Weight','Height']]) 使用reindex方法实现上述reindex_like的效果--reindex_like可以看作是该方法的语法糖...使用表内列作为索引: df.head() 将df的列设置为索引, 参数 drop 默认丢弃原来的索引。...drop_duplicates方法 从名字上看出为剔除重复项,这在后面章节中的分组操作中可能是有用的,例如需要保留每组的第一个值: df.drop_duplicates('Class') 上边有些类似于mysql中按某列...df.drop_duplicates('Class',keep='last') 在传入多列时等价于将多列共同视作一个多级索引,比较重复项: df.drop_duplicates(['School','Class
,Panel是DataFrame的容器,DataFrame是Series的容器; 如何使用Pandas #!...[0:3]) # 按标签选择 print(df.loc[dates[0]]) print(df.loc[:,['A','B']]) print('获取某一个特定值:\n', df.at[dates[0]...:\n', pd.DataFrame(dict_series)) # 列选择,列添加,列删除 df = pd.DataFrame(dict_series) dict_series = {'First'...# 5、split(' ') 用给定的模式拆分每个字符串。 # 6、cat(sep=' ') 使用给定的分隔符连接系列/索引元素。...; right 使用右侧对象的键; outer 使用键的联合; inner 使用键的交集 # --*--coding:utf-8--*-- import pandas as pd left = pd.DataFrame
”选择列中子集,用“when”添加条件,用“like”筛选列内容。...5.1、“Select”操作 可以通过属性(“author”)或索引(dataframe[‘author’])来获取列。...”列的查询结果,第二个结果表格展示多列查询。...5) 分别显示子字符串为(1,3),(3,6),(1,6)的结果 6、增加,修改和删除列 在DataFrame API中同样有数据处理函数。...通过使用.rdd操作,一个数据框架可被转换为RDD,也可以把Spark Dataframe转换为RDD和Pandas格式的字符串同样可行。
第01章 Pandas基础 第02章 DataFrame基础运算 ---- 2.1 从DataFrame中选择多列 使用列名列表提取DataFrame的多列: >>> import pandas as...["director_name"]) # Series类型 也可以使用loc提取多列。...KeyError: ('actor_1_name', 'actor_2_name', 'actor_3_name', 'director_name') ---- 2.2 使用方法提取多列 缩短列名之后查看每种数据类型的个数...NaN 0 使用.filter方法筛选所有列名中包含fb的列: >>> movies.filter(like="fb").head() director_fb actor_3_...NaN 12.0 ---- 2.3 按列名进行排列 对列进行排序的原则: 将列分为分类型和连续型; 按照分类型和连续型对列分组; 分类型排在连续型的前面; 下面是个例子。
与此同时,series因为只有一列,所以数据类型自然也就只有一种,pandas为了兼容二者,series的数据类型属性既可以用dtype也可以用dtypes获取;而dataframe则只能用dtypes...自然毫无悬念 dataframe:无法访问单个元素,只能返回一列、多列或多行:单值或多值(多个列名组成的列表)访问时按列进行查询,单值访问不存在列名歧义时还可直接用属性符号" ....例如,当标签列类型(可通过df.index.dtype查看)为时间类型时,若使用无法隐式转换为时间的字符串作为索引切片,则引发报错 ? 切片形式返回行查询,且为范围查询 ?...;sort_values是按值排序,如果是dataframe对象,也可通过axis参数设置排序方向是行还是列,同时根据by参数传入指定的行或者列,可传入多行或多列并分别设置升序降序参数,非常灵活。...groupby,类比SQL中的group by功能,即按某一列或多列执行分组。
# 用于显示数据的前n行 df.head(n) # 用于显示数据的后n行 df.tail(n) # 用于获取数据的行数和列数 df.shape # 用于获取数据的索引、数据类型和内存信息 df.info...# 用于获取带有标签列的series df[column] # 选择多列 df[['column_name1', 'column_name2']] # 通过标签选择单行 df.loc[label]...') # 按多列对DataFrame进行排序 df_sorted = df.sort_values(['column_name1', 'column_name2'], ascending=[True,...False]) # 按单列对DataFrame进行分组并计算另一列的平均值 grouped_data = df.groupby('column_name')['other_column'].mean...() # 按多列对DataFrame进行分组并计算另一列的总和 grouped_data = df.groupby(['column_name1', 'column_name2'])['other_column
pandas-cheat-sheet.pdf 关键缩写和包导入 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 同时我们需要做如下的引入: import pandas...pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格 pd.read_clipboard():从你的粘贴板获取内容,并传给read_table() pd.DataFrame...数据选取 df[col]:根据列名,并以Series的形式返回列 df[[col1, col2]]:以DataFrame形式返回多列 s.iloc[0]:按位置选取数据 s.loc['index_one...([col1,col2]):返回一个按多列进行分组的Groupby对象 df.groupby(col1)[col2]:返回按列col1进行分组后,列col2的均值 df.pivot_table(index...):返回按列col1分组的所有列的均值 data.apply(np.mean):对DataFrame中的每一列应用函数np.mean data.apply(np.max,axis=1):对DataFrame
参数: ①分组键是列名: 单个列名直接写(按一列进行分组),多个列名以列表的形式传入(这就是按多列进行分 组)。...""" (1)按一列进行分组 import pandas as pd df = pd.DataFrame([[99,"A类","一线城市","是",6,20,0],...按多列进行分组,只要将多个列名以列表的形式传给 groupby() 即可。...参数: ① 一次可以使用多种汇总方式: 多种汇总方式以**列表**的形式传入(且汇总函数是用字符串形式)。...② 针对不同的列做不同的汇总运算:字典形式,*键名*是*列名*,*键值*是*汇总方式*字符串形式。 返回值: 一个DataFrame对象。
,下面列出了一些常见的列类型以及在模型中使用的Python类型。...Integer:普通整数,一般是32bit String:变长字符串 Text:变长字符串,对较长或不限长度的字符做了优化 Boolean:布尔值 Date:日期 DateTime:日期和时间...例如如果address模型中有两个或以上的列定义为person模型的外键,SQLAlchemy就不知道该使用哪列。...这种用户之间关注的关系,我们依然可以使用上面的方法来实现。 高级多对多关系 自引用多对多关系可在数据库中表示用户之间的关注,但却有个限制。使用多对多关系时,往往需要存储所联两个实体之间的额外信息。...lazy参数都在“一”这一侧设定,返回的结果是“多”这一侧中的记录。上述代码使用的是dynamic,因此关系属性不会直接返回记录,而是返回查询对象,所以在执行查询之前还可以添加额外的过滤器。
pd.read_html(url) # 解析URL、字符串或者HTML文件,抽取其中的tables表格 pd.read_clipboard() # 从你的粘贴板获取内容,并传给read_table()...数据选取: df[col] # 根据列名,并以Series的形式返回列 df[[col1, col2]] # 以DataFrame形式返回多列 df.iloc[0] # 按位置选取数据 df.loc[...升序排列,后按col2降序排列数据 df.groupby(col) # 返回一个按列col进行分组的Groupby对象 df.groupby([col1,col2]) # 返回一个按多列进行分组的Groupby...=max) # 创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表 df.groupby(col1).agg(np.mean) # 返回按列col1分组的所有列的均值 data.apply...(np.mean) # 对DataFrame中的每一列应用函数np.mean data.apply(np.max,axis=1) # 对DataFrame中的每一行应用函数np.max 其它操作: 改列名
获取Series的索引: ser_1.index # Int64Index([0, 1, 2, 3, 4, 5, 6], dtype='int64') 使用自定义索引创建Series: ser_2 =...每列可以是不同的类型。 DataFrame同时具有行索引和列索引,类似于Series的字典。行和列操作大致是对称实现的。 索引DataFrame时返回的列是底层数据的视图,而不是副本。...要获取副本,请使用Series的复制方法。...6 NaN NaN 从DataFrame中选择切片: df_6[:2] state pop unempl year 0 VA 5.0 NaN 2012 1 VA 5.1 NaN 2013 基于过滤器从...可以按行或列排名。
header:表示指定文件中的哪一行数据作为DataFrame类对象的列索引,默认为0,即第一行数据作为列索引。...指定usecols usecols:如果一个数据集中有很多列,但是我们在读取的时候只想要使用到的列,我们就可以使用这个参数。...header:表示指定文件中的哪一行数据作为DataFrame类对象的列索引。 names:表示DataFrame类对象的列索引列表。...flavor:表示使用的解析引擎。 index_col:表示将网页表格中的列标题作为DataFrame的行索引。 encoding:表示解析网页的编码方式。...con:表示使用SQLAlchemy连接数据库。 index_col:表示将数据表中的列标题作为DataFrame的行索引。。
本系列学习笔记参考书籍:《数据分析实战》托马兹·卓巴斯 一 基本知识概要 1.利用Pandas检索HTML页面(read_html函数) 2.实战训练使用read_html函数直接获取页面数据 3....(1)io(最关键参数) 源码注释 A URL, a file-like object, or a raw string containing HTML....;str2表示分隔字符串 str3.join(list1) str2 表示按什么字符串进行连接;list1表示待连接的列表 list2.append(str4...pad / ffill:按列检索,将最后一次不为空的值赋给下一个空值。 backfill / bfill:按列检索,将下一个不为空的值赋给该空值。...我的理解 其实很简单,就是按列搜索空值,然后limit的值表示最大的连续填充空值个数。 比如:limit=2,表示一列中从上到下搜索,只替换前两个空值,后面都不替换。
本指南适用于之前未使用pandas的初学者。...使用如下缩写: df:任意的Pandas DataFrame对象 s:任意的Pandas Series对象 创建数据 # -*- coding: utf-8 -*- """ Created on...pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格 pd.read_clipboard():从你的粘贴板获取内容,并传给read_table() pd.DataFrame...df.sort_values(by='B') # 按照列B的值升序排序 数据选取 df[col]:根据列名,并以Series的形式返回列 df[[col1, col2]]:以DataFrame形式返回多列...s.iloc[0]:按位置选取数据 s.loc['index_one']:按索引选取数据 df.iloc[0,:]:返回第一行 df.iloc[0,0]:返回第一列的第一个元素 查看第四行数据 df.loc
选择多列 df[['Column1', 'Column2']] 使用方式: 通过列名列表选择DataFrame中的多列。 示例: 选择“Name”和“Age”列。...排序数据 df.sort_values(by='ColumnName', ascending=False) 使用方式: 根据指定列的值进行升序或降序排序。 示例: 按工资降序排序。...字符串处理 df['StringColumn'].str.method() 使用方式: 对字符串列进行各种处理,如切片、替换等。 示例: 将“Name”列转换为大写。...获取最大值,使用nsmallest获取最小值。...示例: 获取第2行的“Name”列的值。 df.at[1, 'Name'] 45.
领取专属 10元无门槛券
手把手带您无忧上云