__version__ 从列表创建 Series arr = [0, 1, 2, 3, 4] df = pd.Series(arr) # 如果不指定索引,则默认从 0 开始 df 从字典创建 Series...[[3, 4, 8]], ['animal', 'age']] 取出age值大于3的行 df[df['age'] > 3] 取出age值缺失的行 df[df['age'].isnull()] 取出...['f', 'age'] = 1.5 计算visits的总和 df['visits'].sum() 计算每个不同种类animal的age的平均数 df.groupby('animal')['age'...sum() / g1.rolling(3, min_periods=1).count() s.reset_index(level=0, drop=True).sort_index() Series 和...A, B, C每一个的和) s.sum(level=0) #方法二 #s.unstack().sum(axis=0) 交换索引等级,新的Series是字典顺序吗?
,比如根据性别,如果现在需要根据多个维度进行分组,只需在groupby中传入相应列名构成的列表即可。...() # Weight ,False 159.034646 ,True 172.705357 或直接写入括号: df.groupby( df.weight > df.weight.mean...,本质上都是对于行的筛选,如果符合筛选条件的则选入结果表,否则不选入。...组过滤作为行过滤的推广,指的是如果对一个组的全体所在行进行统计的结果返回True则会被保留,False则该组会被过滤,最后把所有未被过滤的组其对应的所在行拼接起来作为DataFrame返回。...(lambda row:row['column1']+row['column2'],axis=1) # 按行 df['sum_columns'] = sum_columns # sum_columns
__version__ 2.从列表创建 Series arr = [0, 1, 2, 3, 4] df = pd.Series(arr) # 如果不指定索引,则默认从 0 开始 df 3.从字典创建...和age列 df.loc[:, ['animal', 'age']] # 方法二 # df[['animal', 'age']] 10.取出索引为[3, 4, 8]行的animal和age列 df.loc...[df.index[[3, 4, 8]], ['animal', 'age']] 11.取出age值大于3的行 df[df['age'] > 3] 12.取出age值缺失的行 df[df['age'....f行的age改为1.5 df.loc['f', 'age'] = 1.5 15.计算visits的总和 df['visits'].sum() 16.计算每个不同种类animal的age的平均数 df.groupby...A, B, C每一个的和) s.sum(level=0) #方法二 #s.unstack().sum(axis=0) 47.交换索引等级,新的Series是字典顺序吗?
要计算总价,变量数量和价格必须大于零。在这个函数中还调用了 Outlier 和 Threshold 函数。...df_gr.groupby(['Invoice', 'Description']).agg({"Quantity": "sum"}).head(20) # Invoice Description #...如果产品不在收据中,则 使用NA 表示。...df_gr.groupby(['Invoice', 'Description']).agg({"Quantity": "sum"}).unstack().fillna(0).iloc[0:5, 0:5]...0.0 0.0 0.0 0.0 如果发票中的产品数量大于
获取指定的列和行 import pandas as pd df = pd.read_csv('xxxx.xls') 获取行操作df.loc[3:6]获取列操作df['rowname']取两列df[['...,ascending=True) , inplace 表示排序的时候是否生成一个新的 dataFrame , ascending=True 表示升序,默认为升序,如果存在缺失的补值( Nan ),排序的时候会将其排在末尾...pr 列的值大于 3000 , group 列显示 hight , 否则显示 low df['group'] = np.where(df['pr'] > 3000, 'hight', 'low') 对复合多个条件的数据进行分级标记...,然后将符合条件的数据提取出来pd.DataFrame(category.str[:3])提取前三个字符,并生成数据表 数据筛选 使用与、或、非三个条件配合大于、小于、等于对数据进行筛选,并进行计数和求和...() 数据汇总 主要使用 groupby 和 pivote_table 进行处理。
df.tail(n) # 查看 DataFrame 对象的最后n行 df.sample(n) # 查看 n 个样本,随机 df.shape # 查看行数和列数 df.info() # 查看索引、数据类型和内存信息...df.expanding(2).sum() # 超出(大于、小于)的值替换成对应值 df.clip(-4, 6) # AB 两列想加增加 C 列 df['C'] = df.eval('A+B') #...Groupby对象 df.groupby(col1)[col2] # 返回按列col1进行分组后,列col2的均值 # 创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表 df.pivot_table...='设计师ID').agg({'结算金额':sum}) df.groupby(by=df.pf).ip.nunique() # groupby distinct, 分组+去重数 df.groupby(by...=df.pf).ip.value_counts() # groupby 分组+去重的值及数量 df.groupby('name').agg(['sum', 'median', 'count']) 12
().sum() 9-计算缺失值|分列 具体每列有多少缺失值 df.isnull().sum() 10-查看缺失值 查看全部缺失值所在的行 df[df.isnull().T.any()==True] 11...30 如果一个国家的金牌数大于 30 则值为 是,反之为否 df['金牌大于30'] = df['金牌数'].apply(lambda x : '是' if x >30 else '否') df['金牌大于...3] 30-筛选行|判断(大于) 提取金牌数大于30的行 df[df['金牌数']>30] 31-筛选行|判断(等于) 提取金牌数等于10的行 df[df['金牌数']==10] 32-筛选行|判断(不等于...- 分组规则|通过字典 将 score 和 matchScore 的和记为总分,与 salary 列同时进行分组,并查看结果 df.groupby({'salary':'薪资','score':'总分...,'数量'],index = ['省/自治区','类别'],aggfunc = ['mean',sum],margins=True) 9 - 数据透视|筛选 在上一题的基础上,查询 「类别」 等于 「办公用品
2、数据探索 2.1 单量最多的时间点 req_hour = city.groupby(['hour'],as_index=True).agg({'requests':sum},inplace=True...2.2 单量最多的日期 req_date = city.groupby(['date'],as_index=True).agg({'requests':sum},inplace=True) req_date.sort_values...2.3 各时段订单完成率 com_hour = city.groupby(['hour'],as_index=False).agg({'requests':sum,'trips':sum},inplace...2.4 单月每日订单完成率 com_date = city.groupby(['date'],as_index=True).agg({'requests':sum,'trips':sum},inplace...busy_hour = city.groupby(['hour'],as_index=False).agg({'supply hours':sum,'busy':sum}) busy_hour['utiliz
,如果传入的不是索引名称,那么切片操作无法执行。...loc使用方法:DataFrame.loc[行索引名称或条件,列索引名称,如果内部传递的是一个区间,则左闭右开。...loc内部可以出入表达式,返回布尔值的series iloc和loc的区别是,iloc接受的必须是行索引和列索引的位置。...DataFrame中选择单行或多行 10 print(df2.loc[:,"year"]) #从DataFrame中选择单列 11 print(df2.loc["one","year"]) #同时确定行和列...方法分组 DataFrame.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_by=True,squeeze=False
'] = df_ks.groupby('rank')['set_1'].sum() result_ks['group_min'] = df_ks.groupby('rank')[y_pre].min...'] = df_ks[df_ks[y_true] == good].groupby('rank')['set_1'].sum() result_ks.good_sum.replace(np.nan...'bad_sum'] = df_ks[df_ks[y_true] == bad].groupby('rank')['set_1'].sum() result_ks.bad_sum.replace...y_true是真实值在df表中的列名,此处为“label”; y_pre是预测值在df表中的列名,此处为“score”; num是需要分组的数量,具体含义后面会说; good和bad是真实值中0和...排序完成后,如果num=10,则将所有的样本划分为10个区间,新增rank列,此列对每个区间从上到下使用1~10个数字标记。
如果 Numba 安装为可选依赖项,则transform和aggregate方法支持engine='numba'和engine_kwargs参数。...但是,由于一般情况下它可以返回零个或多个组的行,因此 pandas 在所有情况下都将其视为过滤器。...n 个元素不存在,则结果中不包括相应的行。...但是,因为一般来说它可以返回零个或多个每组的行,所以 pandas 在所有情况下都将其视为过滤器。...n 个元素不存在,则结果中不包括相应的行。
;如果传递的是单个列名,则返回的是Series。...常见的聚合函数: count sum mean median std、var min、max prod fisrt、last 如果想使用自己的聚合函数,...如果传递的是(name,function)形式,则每个元组的name将会被作为DF数据的列名: ? 不同的函数应用到一个或者多个列上 ?...笔记2:只有当多个函数应用到至少一个列时,DF才具有分层列 返回不含行索引的聚合数据:通过向groupby传递as_index=False来实现 数据透视表和交叉表 DF中的pivot-table方法能够实现透视表...]).sum() # df.groupby(['second', 'A']).sum() ?
如果说用groupby进行数据分组,可以看做是基于行(或者说是index)操作的话,则agg函数则是基于列的聚合操作。...如果不想接收GroupBy自动给出的那些列名,那么如果传入的是一个由(name,function)元组组成的列表,则各元组的第一个元素就会用作DataFrame的列名(可以将这种二元元组列表看做一个有序映射...组装到一起,并以分组名称进行了标记。...为True时,行/列小计和总计的名称; 【例17】对于DataFrame格式的某公司销售数据workdata.csv,存储在本地的数据的形式如下,请利用Python的数据透视表分析计算每个地区的销售总额和利润总额...传入margins=True参数(添加小计/总计) ,将会添加标签为ALL的行和列。
pr 列的值大于 3000 , group 列显示 hight , 否则显示 low df['group'] = np.where(df['pr'] > 3000, 'hight', 'low') 对复合多个条件的数据进行分级标记...,并进行计数和求和。...() 数据汇总 主要使用 groupby 和 pivote_table 进行处理。..., np.sum,np.mean]): 对 city 进行分组,然后计算 pr 列的大小、总和和平均数 数据统计 数据采样,计算标准差、协方差和相关系数。...replace = True 采样后放回 数据表描述性统计 df.describe().round(2).T # round 表示显示的小数位数,T 表示转置 计算列的标准差 df['pr'].std
sale.groupby(["地区名称","业务员名称"])["利润"].sum() 九、条件计算 需求:存货名称含“三星字眼”并且税费高于1000的订单有几个?...sale.groupby("地区名称")["利润"].sum().describe() 根据四分位数把地区总利润为[-9,7091]区间的分组为“较差”,(7091,10952]区间的分组为"中等"...#先建立一个Dataframe sale_area=pd.DataFrame(sale.groupby("地区名称")["利润"].sum()).reset_index() #设置bins,和分组名称...30%的商品信息并标记它为优质商品,小于5%为一般商品。...比如一个很简单的操作:对各列求和并在最下一行显示出来,excel就是对一列总一个sum()函数,然后往左一拉就解决,而python则要定义一个函数(因为python要判断格式,若非数值型数据直接报错。)
行处理:在分区剪裁中,当使用外关联时,如果将副表的过滤条件写在Where后面,那么就会先全表关联,之后再过滤。...如果一个任务有很多小文件(远远小于块大小128m),则每个小文件也会被当做一个块,用一个map任务来完成,而一个map任务启动和初始化的时间远远大于逻辑处理的时间,就会造成很大的资源浪费。...,那么如果这些小文件作为下一个任务的输入,则也会出现小文件过多的问题; 在设置Reduce个数的时候也需要考虑这两个原则:处理大数据量利用合适的Reduce数;使单个Reduce任务处理数据量大小要合适...第二次优化 考虑到trackinfo表的ext_field7字段缺失率很高(为空、字段长度为零、字段填充了非整数)情况,做进行左关联时空字段的关联操作实际上没有意义,因此,如果左表关联字段ext_field7...(2)mapjoin (3)开启数据倾斜时负载均衡 set hive.groupby.skewindata=true; 思想:就是先随机分发并处理,再按照key group by来分发处理。
还可以对多个字段的值进行判断后对数据进行分组,下面的代码中对city列等于beijing并且price列大于等于4000的数据标记为1。...配合sum和count函数还能实现Excel中sumif和countif函数的功能。使用“与”条件进行筛选,条件是年龄大于25岁,并且城市为 beijing。...,Python中使用的主要函数是groupby和pivot_table。...df_inner.groupby('city')['price'].agg([len,np.sum, np.mean]) ? 2.数据透视 ?...Python中则通过corr函数完成相关分析的操作,并返回相关系数。
如果分组依据有多列,而RollUp未汇总全部列,则汇总未选择列。(可以看案例加深理解) D. 作用 返回小计汇总 E. 案例 表3 ?...注意事项 仅在SUMMARIZE和ADDMISSINGITEMS函数中使用。 如果和RollUp用法一样,效果也类似同RollUp。 如果嵌套RollUp使用,用于内部小计及小计汇总。...如果和RollUp一致则效果一致,如果范围不一样则效果不一样。 D. 作用 一般用于过程检查以及链接回表 E. 案例 表3 ?...注意事项 如果和ROLLUPISSUBTOTAL和ISSUBTOTAL函数一起使用,参数要一致 D. 作用 重新添加包含空度量值的行 E. 案例 ?...返回 不返回值,仅标记是否小计 C. 注意事项 只在ADDMISSINGITEMS内使用。 D. 作用 将汇总组合添加的列配对,返回一个逻辑值。 E. 案例 ?
如果为 True,则不要串联轴上使用的索引值。由此产生的轴将标记 0,…,n-1。这是有用的如果你串联串联轴没有有意义的索引信息的对象。请注意在联接中仍然受到尊重的其他轴上的索引值。...副本︰ 布尔值、 默认 True。如果为 False,请不要,不必要地复制数据。...7、适应iloc按位置单独提起数据 df_inner.iloc[[0,2,5],[4,5]] #提取第0、2、5行,4、5列 8、使用ix按索引标签和位置混合提取数据 df_inner.ix[:'2013...() 七、数据汇总 主要函数是groupby和pivote_table 1、对所有的列进行计数汇总 df_inner.groupby('city').count() 2、按城市对id字段进行计数 df_inner.groupby...prince的合计和均值 df_inner.groupby('city')['price'].agg([len,np.sum, np.mean]) 八、数据统计 数据采样,计算标准差,协方差和相关系数
领取专属 10元无门槛券
手把手带您无忧上云