1为什么引入新 NDV 算法 字段的统计数据是 CBO 优化器估算执行计划代价的重要依据。而字段的统计数据可以分为两类: 1. 概要统计数据:如 NDV 字段平均长度 ACL 最大、最小值等 2....柱状图数据:也叫直方图(histograms)记录 NDV 和它们出现的频率 NDV 也叫做唯一值数,是对表的字段唯一值个数的统计,对于第一类数据,实际上可以通过一次扫描表获取所有字段的统计数据。...而如果优化器采样了这样数据进行执行计划代价估算的话,就很有可能获取不到最优的执行计划。 而降低这种不确定性的手段就是提高采样比例。...由于获取 NDV 数值需要消除重复值(通过 count (distinct col) 方式获取),Oracle 是通过排序的方法将已经读取的唯一值保持在 PGA 当中,以便消除后续的重复值。...因此,在 11g,自动采样模式下不再进行快速取样,而是直接进行全表扫描获取统计数据。这一新算法称为唯一值数估计(Approximate NDV)。
1 为什么引入新 NDV 算法 字段的统计数据是 CBO 优化器估算执行计划代价的重要依据。而字段的统计数据可以分为两类: 1. 概要统计数据:如 NDV 字段平均长度 ACL 最大、最小值等 2....柱状图数据:也叫直方图(histograms)记录 NDV 和它们出现的频率 NDV 也叫做唯一值数,是对表的字段唯一值个数的统计,对于第一类数据,实际上可以通过一次扫描表获取所有字段的统计数据。...而如果优化器采样了这样数据进行执行计划代价估算的话,就很有可能获取不到最优的执行计划。 而降低这种不确定性的手段就是提高采样比例。...由于获取 NDV 数值需要消除重复值(通过 count (distinct col) 方式获取),Oracle 是通过排序的方法将已经读取的唯一值保持在 PGA 当中,以便消除后续的重复值。...因此,在 11g,自动采样模式下不再进行快速取样,而是直接进行全表扫描获取统计数据。这一新算法称为唯一值数估计(Approximate NDV)。
最后方法执行完毕后,lhygTaskMode 依然为 null,这是为什么呢? 问题原因: 因为java只有一种传递参数的方式:值传递。...在值传递中,实参的值被传给形参,方法体内对形参的任何赋值操作都不会影响到实参。 测试用例: 接下来我们简单写个测试用例来看看具体输出。...: 可以看到方法内部对象赋值后,是有对象地址输出的,但是方法执行完毕后,源对象 a 依然是 null。...补充说明: 值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。...引用传递是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。 那么,我来给大家总结一下,值传递和引用传递之前的区别的重点是什么。
当谈到数据分析和理解数据结构时,Pandas value_counts() 是最受欢迎的函数之一。该函数返回一个包含唯一值计数的系列。...1、默认参数 2、按升序对结果进行排序 3、按字母顺序排列结果 4、结果中包含空值 5、 以百分比计数显示结果 6、将连续数据分入离散区间 7、分组并调用 value_counts() 8、将结果系列转换为..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一值的百分比计数会更有用。...一个常见的用例是按某个列分组,然后获取另一列的唯一值的计数。例如,让我们按“Embarked”列分组并获取不同“Sex”值的计数。...Pandas DataFrame.value_counts() 返回一个包含 DataFrame 中唯一行计数的系列。
默认参数 按升序对结果进行排序 按字母顺序排列结果 结果中包含空值 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...1、默认参数 Pandas value_counts() 函数返回一个包含唯一值计数的系列。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一值的百分比计数会更有用。...一个常见的用例是按某个列分组,然后获取另一列的唯一值的计数。例如,让我们按“Embarked”列分组并获取不同“Sex”值的计数。...Pandas DataFrame.value_counts() 返回一个包含 DataFrame 中唯一行计数的系列。
默认参数 按升序对结果进行排序 按字母顺序排列结果 结果中包含空值 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...1、默认参数 Pandas value_counts() 函数返回一个包含唯一值计数的系列。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一值的百分比计数会更有用。...一个常见的用例是按某个列分组,然后获取另一列的唯一值的计数。例如,让我们按“Embarked”列分组并获取不同“Sex”值的计数。 ...Pandas DataFrame.value_counts() 返回一个包含 DataFrame 中唯一行计数的系列。
s.value_counts(dropna=False):查看Series对象的唯一值和计数 df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数...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 数据合并 df1.append(df2):将df2...中的行添加到df1的尾部 df.concat([df1, df2],axis=1):将df2中的列添加到df1的尾部 df1.join(df2,on=col1,how='inner'):对df1的列和df2...的列执行SQL形式的join 数据统计 df.describe():查看数据值列的汇总统计 df.mean():返回所有列的均值 df.corr():返回列与列之间的相关系数 df.count():返回每一列中的非空值的个数
>>> dtype('float64')# Number of rows and columns df.shape >>> (9, 5) value_counts()函数的作用是:获取一系列包含唯一值的计数...要检查panda DataFrame中的空值,我们使用isnull()或notnull()方法。方法返回布尔值的数据名,对于NaN值为真。...方法可用于替换DataFrame中的值 one = df.replace(100,'A') # Replace all values equal to 1 with 'one' ?...我们可以创建一组类别,并对类别应用一个函数。这是一个简单的概念,但却是我们经常使用的极有价值的技术。Groupby的概念很重要,因为它能够有效地聚合数据,无论是在性能上还是在代码数量上都非常出色。...计算性别分组的所有列的平均值 average = df.groupby(‘Sex’).agg(np.mean) ? 统计数据 我们可能熟悉Excel中的数据透视表,可以轻松地洞察数据。
关键词和导入 在这个速查卡中,我们会用到一下缩写: df 二维的表格型数据结构DataFrame s 一维数组Series 您还需要执行以下导入才能开始: import pandas as pd import...df.info() 索引,数据类型和内存信息 df.describe() 数值列的汇总统计信息 s.value_counts(dropna=False) 查看唯一值和计数 df.apply(pd.Series.value_counts...) 所有列的唯一值和计数 选择 df[col] 返回一维数组col的列 df[[col1, col2]] 作为新的数据框返回列 s.iloc[0] 按位置选择 s.loc['index_one'] 按索引选择...,按col1中的值分组(平均值可以用统计部分中的几乎任何函数替换) df.pivot_table(index=col1,values=[col2,col3],aggfunc=max) 创建一个数据透视表...,按col1分组并计算col2和col3的平均值 df.groupby(col1).agg(np.mean) 查找每个唯一col1组的所有列的平均值 data.apply(np.mean) 在每个列上应用函数
为了让大家更加熟悉商业数据分析流程,赛事平台和鲸社区还非常贴心提供了多场数据分析专题分享,下面就为大家打来第一场直播培训中,主讲老师黄凯根据大家反馈提供的培训Notebook,覆盖数据预处理、分组聚合计算...我们只要简单的进行一下整理和清洗即可; 再针对我们的分析目标,进行分组聚合计算,得出有效的结论; 最后对我们得出的结论进行可视化展示。...AxesSubplot at 0x7fbfe0bf07f0> 本项目第一次使用分组聚合计算, 在这里详细讲解一下 分组: groupby 按年度分组 聚合: count 企业名称计数 请思考为什么用企业名称而不是用其他列来计数...回答:因为其他列包括空值,不唯一 计算: cumsum 增长求和 拓展:去 pandas 官网查看 cumsum 方法的文档,并查看其他相关方法。...T. plot() # groupby 可以对多列数据进行分组 # unstack 对多项索引转换为单例索引 # T 将x轴和y轴转置, 是 transform 的简写方法 # 技巧:unstack()
df.describe()# 查看数值型列的汇总统计 s.value_counts(dropna=False) # 查看Series对象的唯一值和计数 df.apply(pd.Series.value_counts...) # 查看DataFrame对象中每一列的唯一值和计数 数据选取: df[col] # 根据列名,并以Series的形式返回列 df[[col1, col2]] # 以DataFrame形式返回多列...') # 对df1的列和df2的列执行SQL形式的join 数据清理: df[df[col] > 0.5] # 选择col列的值大于0.5的行 df.sort_values(col1) # 按照列col1...) # 返回按列col1分组的所有列的均值 data.apply(np.mean) # 对DataFrame中的每一列应用函数np.mean data.apply(np.max,axis=1) # 对DataFrame...中的每一行应用函数np.max 其它操作: 改列名: 方法1 a.columns = ['a','b','c'] 方法2 a.rename(columns={'A':'a', 'B':'b', 'C':
相反,GroupBy可以(经常)只遍历单次数据来执行此操作,在此过程中更新每个组的总和,均值,计数,最小值或其他聚合。...例如,你可以使用DataFrame的describe()方法,来执行一组聚合,它们描述数据中的每个分组: planets.groupby('method')['year'].describe().unstack...这只是分发方法的一个例子。请注意,它们被应用于每个单独的分组,然后在```GroupBy中组合并返回结果。...将索引映射到分组的字典或序列 另一种方法是提供将索引值映射到分组键的字典: df2 = df.set_index('key') mapping = {'A': 'vowel', 'B': 'consonant...在这里,我建议深入研究这几行代码,并评估各个步骤,来确保你准确了解它们对结果的作用。 这当然是一个有点复杂的例子,但理解这些部分将为你提供,探索自己的数据的类似方法。
') 4.查看空值 Excel中查看空值的方法是使用“定位条件”在“开始”目录下的“查找和选择”目录. ?...5.查看唯一值 Excel中查看唯一值的方法是使用“条件格式”对唯一值进行颜色 标记。 ? Python中使用unique函数查看唯一值。...Python中处理空值的方法比较灵活,可以使用 Dropna函数用来删除数据表中包含空值的数据,也可以使用fillna函数对空值进行填充。...还可以对多个字段的值进行判断后对数据进行分组,下面的代码中对city列等于beijing并且price列大于等于4000的数据标记为1。...相当于Excel中的countifs函数的功能 #对筛选后的数据按city列进行计数 df_inner.loc[(df_inner['city'] !
优缺点」 优点:新构造的有效且合理的特征可提高模型的预测表现能力。 「缺点:」 (1)新构造的特征不一定是对模型有正向影响作用的,也许对模型来说是没有影响的甚至是负向影响,拉低模型的性能。...=['petal_width'], how='inner') print('>>>新构建的计数特征的唯一值数据:\n', df_newF1['petal_width_count'].unique())...df_newF1.head() >>>新构建的计数特征的唯一值数据: [29 7 5 1 8 12 13 4 3 2 6] 就这样,我们构造出一个新的特征 petal_width_count...= pd.merge(df, newF2, on='sepal_length', how='inner') # 由于聚合分组之后有一些样本的 std 会存在缺失值,所以统一填充为 0 df_newF2...就这样,我们基于两个变量聚合分组之后,使用统计值构建出 5 个新的特征,下面简单地来 验证演示一下新构造特征的有效性如何? df_newF2.corr() ?
1.pandas数据结构 在pandas中,有两个常用的数据结构:Series和Dataframe 为大多数应用提供了一个有效、易用的基础。 ...View Code 3.使用loc和iloc选择数据 loc方法是针对DataFrame索引名称的切片方法,如果传入的不是索引名称,那么切片操作无法执行。...:返回一个Series,索引是唯一值序列,值是计数个数,按照个数降序排序 ?...()) #返回每组的中位数 14 print(group.cumcount()) #对每个分组中的成员进行标记 15 print(group.size()) #返回每个分组的大小 16 print...print(group.cumcount()) #对每个分组中的成员进行标记 print(group.size()) #返回每个分组的大小 print(group.min()) #返回每个分组的最小值
最后,所有这些函数的执行结果会被合并(combine)到最终的结果对象中。结果对象的形式一般取决于数据上所执行的操作。下图大致说明了一个简单的分组聚合过程。...它实际上还没有进行任何计算,只是含有一些有关分组键df[‘key1’]的中间数据而已。换句话说,该对象已经有了接下来对各分组执行运算所需的一切信息。...拿上面例子中的df来说,我们可以根据dtype对列进行分组: print(df.dtypes) grouped = df.groupby(df.dtypes,axis = 1) 可以如下打印分组: for...(df['key1']).describe() 关键技术: size跟count的区别是: size计数时包含NaN值,而count不包含NaN值。...aggfunc =值的聚合方式,聚合函数或函数列表,默认为’mean’,可以是任何对groupby有效的函数; margins = 总计。
“by”参数可以使用字符串,也可以是列表,ascending 的参数也可以是单个值或者列表 ascending 默认值是 True 列中的每行上的 apply 函数 在前一篇的增加列的部分,根据风速计算人体感觉是否舒适...,为了功能的演示,在这里使用 DataFrame 的 apply 方法,他会在指定列的每个值上执行。...详见代码: 均值和标准差 我们通过 describe 方法查看的统计信息中均值和方差都是按照列统计呢,这里要说的,既可以按照列,还可以按照行 均值,行 df.mean(axis=0),列df.mean(...SQL 一样的连接,内联,外联,左联,右联 作为我们的示例数据,可以唯一标识一行的就是 Datatime 列 merged_df = df_1.merge(df_2, how='left', on='...).sum().sum() 分组 Group By 分组在数据统计的时候经常使用。
一,事件时间窗口操作 使用Structured Streaming基于事件时间的滑动窗口的聚合操作是很简单的,很像分组聚合。在一个分组聚合操作中,聚合值被唯一保存在用户指定的列中。...这在我们基于窗口的分组中自然出现 - 结构化流可以长时间维持部分聚合的中间状态,以便后期数据可以正确更新旧窗口的聚合,如下所示。 ?..., "type", "right_join") // right outer join with a static DF 五,流式去重 您可以使用事件中的唯一标识符对数据流中的记录进行重复数据删除。...例如,在许多用例中,您必须跟踪事件数据流中的会话。对于进行此类会话,您将必须将任意类型的数据保存为状态,并在每个触发器中使用数据流事件对状态执行任意操作。...虽然一些操作在未来的Spark版本中或许会得到支持,但还有一些其它的操作很难在流数据上高效的实现。例如,例如,不支持对输入流进行排序,因为它需要跟踪流中接收到的所有数据。因此,从根本上难以有效执行。
df.info():提供数据摘要,包括索引数据类型,列数据类型,非空值和内存使用情况。 df.describe():提供描述性统计数据。...df['Contour'].isnull().sum():返回'Contour'列中的空值计数 df['pH'].notnull().sum():返回“pH”列中非空值的计数 df['Depth']....unique():返回'Depth'列中的唯一值 df.columns:返回所有列的名称 选择数据 列选择:如果只想选择一列,可以使用df['Group']....下面的代码将平方根应用于“Cond”列中的所有值。 df['Cond'].apply(np.sqrt) 数据分组 有时我们需要将数据分组来更好地观察数据间的差异。...Pandas中提供以下几种方式对数据进行分组。 下面的示例按“Contour”列对数据进行分组,并计算“Ca”列中记录的平均值,总和或计数。
() # 查看数值型列的汇总统计 s.value_counts(dropna=False) # 查看Series对象的唯一值和计数 df.apply(pd.Series.value_counts) #...查看DataFrame对象中每一列的唯一值和计数 df.isnull().any() # 查看是否有缺失值 df[df[column_name].duplicated()] # 查看column_name...=[col2,col3], aggfunc={col2:max,col3:[ma,min]}) # 创建一个按列col1进行分组,计算col2的最大值和col3的最大值、最小值的数据透视表 df.groupby...) # 对DataFrame中的每一列应用函数np.mean data.apply(np.max,axis=1) # 对DataFrame中的每一行应用函数np.max df.groupby(col1)...'inner') # 对df1的列和df2的列执行SQL形式的join,默认按照索引来进行合并,如果df1和df2有共同字段时,会报错,可通过设置lsuffix,rsuffix来进行解决,如果需要按照共同列进行合并
领取专属 10元无门槛券
手把手带您无忧上云