首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《Pandas Cookbook》第02章 DataFrame基本操作1. 选取多个DataFrame2. 对列名进行排序3. 整个DataFrame上操作4. 串联DataFrame方法5.

选取多个DataFrame # 用列表选取多个 In[2]: movie = pd.read_csv('data/movie.csv') movie_actor_director...整个DataFrame上操作 In[18]: pd.options.display.max_rows = 8 movie = pd.read_csv('data/movie.csv...DataFrame上使用运算符 # college数据集的值既有数值也有对象,整数5不能与字符串相加 In[37]: college = pd.read_csv('data/college.csv'...# 用DataFrameDataFrame进行比较 In[55]: college_self_compare = college_ugds_ == college_ugds_ college_self_compare.head...# 查看US News前五所最具多样性的大学diversity_metric中的情况 In[81]: us_news_top = ['Rutgers University-Newark',

4.5K40

快速提升效率的6个pandas使用小技巧

还是用泰坦尼克数据集: import seaborn as sns # 导出泰坦尼克数据集 df = sns.load_dataset('titanic') df.info() 红色地方是有缺失值的...对连续数据进行离散化处理 在数据准备过程中,常常会组合或者转换现有特征以创建一个新的特征,其中将连续数据离散化是非常重要的特征转化方式,也就是将数值变成类别特征。...可以看到新增了一ageGroup,用以展示年龄分组: df['ageGroup'].head() 6....从多个文件中构建一个DataFrame 有时候数据集可能分布多个excel或者csv文件中,但需要把它读取到一个DataFrame中,这样的需求该如何实现?...做法是分别读取这些文件,然后将多个dataframe组合到一起,变成一个dataframe。 这里使用内置的glob模块,来获取文件路径,简洁且更有效率。

3.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

SQL、Pandas和Spark:常用数据查询操作对比

有公共字段,且连接条件只有1个,直接传入连接列名 df1.join(df2, "col") // 2、有多个字段,可通过Seq传入多个字段 df1.join(df2, Seq("col1", "col2...group by关键字用于分组聚合,实际上包括了分组和聚合两个阶段,由于这一操作属于比较规范化的操作,所以Pandas和Spark中也都提供了同名关键字,不同的是group by之后所接的操作算子不尽相同...// 1、指定+desc df.orderBy(df("col").desc) // 2、desc函数加指定 df.orderBy(desc("col")) 9)limit。...SQL中还有另一个常用查询关键字Union,Pandas和Spark中也有相应实现: Pandas:concat和append,其中concat是Pandas 中顶层方法,可用于两个DataFrame...纵向拼接,要求列名对齐,而append则相当于一个精简的concat实现,与Python中列表的append方法类似,用于一个DataFrame尾部追加另一个DataFrame; Spark:Spark

2.4K20

Pandas_Study02

去除 NaN 值 Pandas的各类数据Series和DataFrame里字段值为NaN的为缺失数据,不代表0而是说没有赋值数据,类似于python中的None值。...(val1, index = idx, columns = col) df2 = pd.DataFrame(val2, index = idx, columns = col) # 相同的情况下,...就是后一个df 接在前一个df 后面 df12 = pd.concat([df1, df2]) 当然,和行不一定是对应的,这个时候两DataFrame未匹配上的label或columns下的值为NaN...on:", n, "\n|",g ,"|" 2. aggregate 聚合 使用groupby 分组完成后,借助aggregate函数可以 经过分组后 每组进行操作。...# 分组后对每组数据求平均值 print dg1.agg(np.mean) 也可以应用多个函数 # 以列表的形式传入参数即可,会对每组都执行全部的聚合函数 print dg1.agg([np.mean,

17710

数据规整(1)

---- 很多应用中,数据可能分布多个文件或数据库中,或者以一些不易分析的格式进行排列,因此本章介绍数据规整。...1 分层索引 分层索引pandas基础已经提及,它是pandas的重要特性,允许一个轴向上有多个索引层级,下面的例子就是一个分层索引: import pandas as pd import numpy...的进行索引 DataFrame中我们可以将一些普通列作为索引,并且也可以将索引归并到普通中,测试数据如下(数据命名为df): 将c和d列作为索引,用到了set_index方法,会返回一个新的...DataFrame对象: df.set_index(['c', 'd']) 可以传入drop=False防止在数据集中将原有的c和d移除。...(5)sum(level=索引名称)可以使数据某个层级上进行汇总统计 (6)set_index方法可以将数据的多个列作为索引,其反操作为reset_index

45120

Pandas数据分组的函数应用(df.apply()、df.agg()和df.transform()、df.applymap())

(np.random.randn(4, 3), columns=list('bde'), index=['utah', 'ohio', 'texas', 'oregon']) #columns表述,...index表述行 print(df) t1 = df.apply(f) #df.apply(function, axis=0),默认axis=0,表示将一数据作为Series的数据结构传入给定的...score_math score_music amax 96 92 min 59 70 3)使用字典可以对特定应用特定及多个函数...,将返回于原始DataFrame大小不同的DataFrame,返回结果中: 索引上第一级别是原始列名 第二级别上是转换的函数名 >>> df.transform([lambda x:x-x.mean...Series对象进行了map()操作 通过以上分析我们可以看到,apply、agg、transform三种方法都可以对分组数据进行函数操作,但也各有特色,总结如下: apply中自定义函数对每个分组数据单独进行处理

2.2K10

Pandas图鉴(三):DataFrames

MultiIndex 我们将拆分成四个部分,依次呈现~建议关注和星@公众号:数据STUDIO,精彩内容等你来~ Part 3....1:1的关系joins 这时,关于同一组对象的信息被存储几个不同的DataFrame中,而你想把它合并到一个DataFrame中。 如果你想合并的不在索引中,可以使用merge。...首先,你可以只用一个名字来指定要分组,如下图所示: 如果没有as_index=False,Pandas会把进行分组的那一作为索引。...分组时,不同的列有时应该被区别对待。例如,对数量求和是完全可以的,但对价格求和则没有意义。...与Series相比,该函数可以访问组的多个(它被送入一个子DataFrame作为参数),如下图所示: 注意,不能在一个命令中结合预定义的聚合和几列范围的自定义函数,比如上面的那个,因为aggreg只接受一范围的用户函数

34120

数据可视化干货:使用pandas和seaborn制作炫酷图表(附代码)

pandas中,我们可能有多个数据,并且带有行和的标签。pandas自身有很多内建方法可以简化从DataFrame和Series对象生成可视化的过程。...DataFrame的plot方法同一个子图中将每一绘制为不同的折线,并自动生成图例(见图9-14): In [62]: df = pd.DataFrame(np.random.randn(10, 4...拥有多个选项,允许灵活地处理;例如,是否将各绘制到同一个子图中,或为各生成独立的子图。...DataFrame中,柱状图将每一行中的值分组到并排的柱子中的一组。...因为day中有多个观测值,柱子的值是tip_pct的平均值。柱子上画出的黑线代表的是95%的置信区间(置信区间可以通过可选参数进行设置)。

5.2K40

(数据科学学习手札69)详解pandas中的map、apply、applymap、groupby、agg

● 多数据   apply()最特别的地方在于其可以同时处理多数据,譬如这里我们编写一个使用到多数据的函数用于拼成对于每一行描述性的话,并在apply()用lambda函数传递多个值进编写好的函数中...(当调用DataFrame.apply()时,apply()串行过程中实际处理的是每一行数据而不是Series.apply()那样每次处理单个值),注意在处理多个值时要给apply()添加参数axis...三、聚合类方法   有些时候我们需要像SQL里的聚合操作那样将原始数据按照某个或某些离散型的进行分组再求和、平均数等聚合之后的值,pandas中分组运算是一件非常优雅的事。...当变量为1个时传入名称字符串即可,当为多个时传入这些变量名称列表,DataFrame对象通过groupby()之后返回一个生成器,需要将其列表化才能得到需要的分组后的子集,如下面的示例: #按照年份和性别对婴儿姓名数据进行分组...可以看到每一个结果都是一个二元组,元组的第一个元素是对应这个分组结果的分组组合方式,第二个元素是分组出的子集数据框,而对于DataFrame.groupby()得到的结果,主要可以进行以下几种操作: ●

4.9K60

利用 Python 分析 MovieLens 1M 数据集

包含逗号(,)的使用双引号(```)进行转义。这些文件编码为UTF-8。...用户IDratings.csv和tags.csv之间是一致的(即,相同的id指的是两个文件中的同一用户)。 电影Ids 数据集中仅包含至少具有一个评级或标记的电影。...电影IDratings.csv,tags.csv,movies.csv和links.csv之间是一致的. 2 Python 数据处理 2.1 转化DataFrame对象 通过[pandas.read_csv...,输出内容为rating的数据,行index为电影名称,为性别,aggfunc参数为函数或函数列表(默认为numpy.mean),其中“columns”提供了一种额外的方法来分割数据。...2.5 过滤评分数据不够250条的电影 通过groupby()对title进行分组 利用size()得到一个含有各电影分组大小的Series对象 print("过滤评分数据不够250条的电影") ratings_by_title

1.4K30

pandas中的数据处理利器-groupby

分组方式 分组的依据既可以是单个标签,也可以是多个标签的组合,示例如下 >>> df = pd.DataFrame({'id':[1, 2, 3, 4], ......>>> df.groupby('class') # 多个标签的组合,用列表的形式声明 >>> df.groupby(['class','sex']) # 用行标签分组 >>> arrays =...分组处理 分组处理就是对每个分组进行相同的操作,groupby的返回对象并不是一个DataFrame, 所以无法直接使用DataFrame的一些操作函数。...4.0,2.1,3.5,4.2,3.8,4.7]}) >>> df x y z 0 a 2 4.0 1 a 4 2.1 2 b 0 3.5 3 b 5 4.2 4 c 5 3.8 5 c 10 4.7 # 同一用不用函数进行处理...汇总数据 transform方法返回一个和输入的原始数据相同尺寸的数据框,常用于原始数据框的基础上增加新的一分组统计数据,用法如下 >>> df = pd.DataFrame({'x':['a','

3.6K10

不再纠结,一文详解pandas中的map、apply、applymap、groupby、agg...

譬如这里我们编写一个使用到多数据的函数用于拼成对于每一行描述性的话,并在apply()用lambda函数传递多个值进编写好的函数中(当调用DataFrame.apply()时,apply()串行过程中实际处理的是每一行数据...三、聚合类方法 有些时候我们需要像SQL里的聚合操作那样将原始数据按照某个或某些离散型的进行分组再求和、平均数等聚合之后的值,pandas中分组运算是一件非常优雅的事。...3.1 利用groupby()进行分组 要进行分组运算第一步当然就是分组pandas中对数据框进行分组使用到groupby()方法。...当为多个时传入这些变量名称列表,DataFrame对象通过groupby()之后返回一个生成器,需要将其列表化才能得到需要的分组后的子集,如下面的示例: #按照年份和性别对婴儿姓名数据进行分组 groups...可以看到每一个结果都是一个二元组,元组的第一个元素是对应这个分组结果的分组组合方式,第二个元素是分组出的子集数据框,而对于DataFrame.groupby()得到的结果。

4.9K10

直观地解释和可视化每个复杂的DataFrame操作

Pivot 透视表将创建一个新的“透视表”,该透视表将数据中的现有投影为新表的元素,包括索引,和值。初始DataFrame中将成为索引的,并且这些显示为唯一值,而这两的组合将显示为值。...原始DataFrame的状态围绕DataFrame的中心元素旋转到一个新元素。有些元素实际上是旋转或变换的(例如,“ bar ”),因此很重要。...当一爆炸时,其中的所有列表将作为新行列同一索引下(为防止发生这种情况, 此后只需调用 .reset_index()即可)。...另一方面,如果一个键同一DataFrame中列出两次,则在合并表中将列出同一键的每个值组合。...例如,如果 df1 具有3个键foo 值, 而 df2 具有2个相同键的值,则 最终DataFrame中将有6个条目,其中 leftkey = foo 和 rightkey = foo。 ?

13.3K20
领券