当前位置: 首页 > news >正文

宾川网站建设网站建设相关关键词

宾川网站建设,网站建设相关关键词,十大网络推广公司,wordpress中文版CSDN 课程推荐#xff1a;《迈向数据科学家#xff1a;带你玩转Python数据分析》#xff0c;讲师齐伟#xff0c;苏州研途教育科技有限公司CTO#xff0c;苏州大学应用统计专业硕士生指导委员会委员#xff1b;已出版《跟老齐学Python#xff1a;轻松入门》《跟老齐学Py… CSDN 课程推荐《迈向数据科学家带你玩转Python数据分析》讲师齐伟苏州研途教育科技有限公司CTO苏州大学应用统计专业硕士生指导委员会委员已出版《跟老齐学Python轻松入门》《跟老齐学PythonDjango实战》、《跟老齐学Python数据分析》和《Python大学实用教程》畅销图书。Pandas 系列文章 Python 数据分析三剑客之 Pandas一认识 Pandas 及其 Series、DataFrame 对象Python 数据分析三剑客之 Pandas二Index 索引对象以及各种索引操作Python 数据分析三剑客之 Pandas三算术运算与缺失值的处理Python 数据分析三剑客之 Pandas四函数应用、映射、排序和层级索引Python 数据分析三剑客之 Pandas五统计计算与统计描述Python 数据分析三剑客之 Pandas六GroupBy 数据分裂、应用与合并Python 数据分析三剑客之 Pandas七合并数据集Python 数据分析三剑客之 Pandas八数据重塑、重复数据处理与数据替换Python 数据分析三剑客之 Pandas九时间序列Python 数据分析三剑客之 Pandas十数据读写 另有 NumPy、Matplotlib 系列文章已更新完毕欢迎关注 NumPy 系列文章https://itrhx.blog.csdn.net/category_9780393.htmlMatplotlib 系列文章https://itrhx.blog.csdn.net/category_9780418.html 推荐学习资料与网站博主参与部分文档翻译 NumPy 官方中文网https://www.numpy.org.cn/Pandas 官方中文网https://www.pypandas.cn/Matplotlib 官方中文网https://www.matplotlib.org.cn/NumPy、Matplotlib、Pandas 速查表https://github.com/TRHX/Python-quick-reference-table 文章目录【01x00】GroupBy 机制【02x00】GroupBy 对象【03x00】GroupBy Split 数据分裂【03x01】分组运算【03x02】按类型按列分组【03x03】自定义分组【03x03x01】字典分组【03x03x02】函数分组【03x03x03】索引层级分组【03x04】分组迭代【03x05】对象转换【04x00】GroupBy Apply 数据应用【04x01】聚合函数【04x02】自定义函数【04x03】对不同列作用不同函数【04x04】GroupBy.apply()这里是一段防爬虫文本请读者忽略。 本文原创首发于 CSDN作者 TRHX。 博客首页https://itrhx.blog.csdn.net/ 本文链接https://itrhx.blog.csdn.net/article/details/106804881 未经授权禁止转载恶意转载后果自负尊重原创远离剽窃【01x00】GroupBy 机制 对数据集进行分组并对各组应用一个函数无论是聚合还是转换通常是数据分析工作中的重要环节。在将数据集加载、融合、准备好之后通常就是计算分组统计或生成透视表。Pandas 提供了一个灵活高效的 GroupBy 功能虽然“分组”group by这个名字是借用 SQL 数据库语言的命令但其理念引用发明 R 语言 frame 的 Hadley Wickham 的观点可能更合适分裂Split、应用Apply和组合Combine。 分组运算过程Split — Apply — Combine 分裂Split根据某些标准将数据分组应用Apply对每个组独立应用一个函数合并Combine把每个分组的计算结果合并起来。 官方介绍https://pandas.pydata.org/docs/user_guide/groupby.html 【02x00】GroupBy 对象 常见的 GroupBy 对象Series.groupby、DataFrame.groupby基本语法如下 Series.groupby(self,byNone,axis0,levelNone,as_index: bool True,sort: bool True,group_keys: bool True,squeeze: bool False,observed: bool False) → ’groupby_generic.SeriesGroupBy’DataFrame.groupby(self,byNone,axis0,levelNone,as_index: bool True,sort: bool True,group_keys: bool True,squeeze: bool False,observed: bool False) → ’groupby_generic.DataFrameGroupBy’官方文档 https://pandas.pydata.org/docs/reference/api/pandas.Series.groupby.html https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html 常用参数解释如下 参数描述by映射、函数、标签或标签列表用于确定分组依据的分组。如果 by 是函数则会在对象索引的每个值上调用它。 如果传递了 dict 或 Series则将使用 Series 或 dict 的值来确定组将 Series 的值首先对齐请参见.align() 方法。 如果传递了 ndarray则按原样使用这些值来确定组。标签或标签列表可以按自身中的列传递给分组。 注意元组被解释为单个键axis沿指定轴拆分默认 00 or ‘index’1 or ‘columns’只有在 DataFrame 中才有 1 or columns’level如果轴是 MultiIndex层次结构则按特定层级进行分组默认 Noneas_indexbool 类型默认 True对于聚合输出返回以组标签为索引的对象。仅与 DataFrame 输入相关。as_indexFalse 实际上是“SQL样式”分组输出sortbool 类型默认 True对组键排序。关闭此选项可获得更好的性能。注这不影响每组的观察顺序。Groupby 保留每个组中行的顺序group_keysbool 类型默认 True调用 apply 方法时是否将组键keys添加到索引 index以标识块squeezebool 类型默认 False如果可能减少返回类型的维度否则返回一致的类型 groupby() 进行分组GroupBy 对象没有进行实际运算只是包含分组的中间数据示例如下 import pandas as pdimport numpy as npdata {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randn(8),data2: np.random.randn(8)}obj pd.DataFrame(data)objkey1 key2 data1 data2 0 a one -0.804160 -0.868905 1 b one -0.086990 0.325741 2 a two 0.757992 0.541101 3 b three -0.281435 0.097841 4 a two 0.817757 -0.643699 5 b two -0.462760 -0.321196 6 a one -0.403699 0.602138 7 a three 0.883940 -0.850526obj.groupby(key1) pandas.core.groupby.generic.DataFrameGroupBy object at 0x03CDB7C0obj[data1].groupby(obj[key1]) pandas.core.groupby.generic.SeriesGroupBy object at 0x03CDB748【03x00】GroupBy Split 数据分裂 【03x01】分组运算 前面通过 groupby() 方法获得了一个 GroupBy 对象它实际上还没有进行任何计算只是含有一些有关分组键 obj[key1] 的中间数据而已。换句话说该对象已经有了接下来对各分组执行运算所需的一切信息。例如我们可以调用 GroupBy 的 mean() 方法来计算分组平均值size() 方法返回每个分组的元素个数 import pandas as pdimport numpy as npdata {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randn(8),data2: np.random.randn(8)}obj pd.DataFrame(data)objkey1 key2 data1 data2 0 a one -0.544099 -0.614079 1 b one 2.193712 0.101005 2 a two -0.004683 0.882770 3 b three 0.312858 1.732105 4 a two 0.011089 0.089587 5 b two 0.292165 1.327638 6 a one -1.433291 -0.238971 7 a three -0.004724 -2.117326grouped1 obj.groupby(key1)grouped2 obj[data1].groupby(obj[key1])grouped1.mean()data1 data2 key1 a -0.395142 -0.399604 b 0.932912 1.053583grouped2.mean() key1 a -0.395142 b 0.932912 Name: data1, dtype: float64grouped1.size() key1 a 5 b 3 dtype: int64grouped2.size() key1 a 5 b 3 Name: data1, dtype: int64【03x02】按类型按列分组 groupby() 方法 axis 参数默认是 0通过设置也可以在其他任何轴上进行分组也支持按照类型dtype进行分组 import pandas as pdimport numpy as npdata {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randn(8),data2: np.random.randn(8)}obj pd.DataFrame(data)objkey1 key2 data1 data2 0 a one -0.607009 1.948301 1 b one 0.150818 -0.025095 2 a two -2.086024 0.358164 3 b three 0.446061 1.708797 4 a two 0.745457 -0.980948 5 b two 0.981877 2.159327 6 a one 0.804480 -0.499661 7 a three 0.112884 0.004367obj.dtypes key1 object key2 object data1 float64 data2 float64 dtype: objectobj.groupby(obj.dtypes, axis1).size() float64 2 object 2 dtype: int64obj.groupby(obj.dtypes, axis1).sum()float64 object 0 1.341291 aone 1 0.125723 bone 2 -1.727860 atwo 3 2.154858 bthree 4 -0.235491 atwo 5 3.141203 btwo 6 0.304819 aone 7 0.117251 athree【03x03】自定义分组 groupby() 方法中可以一次传入多个数组的列表也可以自定义一组分组键。也可以通过一个字典、一个函数或者按照索引层级进行分组。 传入多个数组的列表 import pandas as pdimport numpy as npdata {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randn(8),data2: np.random.randn(8)}obj pd.DataFrame(data)objkey1 key2 data1 data2 0 a one -0.841652 0.688055 1 b one 0.510042 -0.561171 2 a two -0.418862 -0.145983 3 b three -1.104698 0.563158 4 a two 0.329527 -0.893108 5 b two 0.753653 -0.342520 6 a one -0.882527 -1.121329 7 a three 1.726794 0.160244means obj[data1].groupby([obj[key1], obj[key2]]).mean()means key1 key2 a one -0.862090three 1.726794two -0.044667 b one 0.510042three -1.104698two 0.753653 Name: data1, dtype: float64means.unstack() key2 one three two key1 a -0.862090 1.726794 -0.044667 b 0.510042 -1.104698 0.753653自定义分组键 import pandas as pdimport numpy as npobj pd.DataFrame({key1 : [a, a, b, b, a],key2 : [one, two, one, two, one],data1 : np.random.randn(5),data2 : np.random.randn(5)})objkey1 key2 data1 data2 0 a one -0.024003 0.350480 1 a two -0.767534 -0.100426 2 b one -0.594983 -1.945580 3 b two -0.374482 0.817592 4 a one 0.755452 -0.137759states np.array([Wuhan, Beijing, Beijing, Wuhan, Wuhan])years np.array([2005, 2005, 2006, 2005, 2006])obj[data1].groupby([states, years]).mean() Beijing 2005 -0.7675342006 -0.594983 Wuhan 2005 -0.1992422006 0.755452 Name: data1, dtype: float64【03x03x01】字典分组 通过字典进行分组 import pandas as pdimport numpy as npobj pd.DataFrame(np.random.randint(1, 10, (5,5)),columns[a, b, c, d, e],index[A, B, C, D, E])obja b c d e A 1 4 7 1 9 B 8 2 4 7 8 C 9 8 2 5 1 D 2 4 2 8 3 E 7 5 7 2 3obj_dict {a:Python, b:Python, c:Java, d:C, e:Java}obj.groupby(obj_dict, axis1).size() C 1 Java 2 Python 2 dtype: int64obj.groupby(obj_dict, axis1).count()C Java Python A 1 2 2 B 1 2 2 C 1 2 2 D 1 2 2 E 1 2 2obj.groupby(obj_dict, axis1).sum()C Java Python A 1 16 5 B 7 12 10 C 5 3 17 D 8 5 6 E 2 10 12【03x03x02】函数分组 通过函数进行分组 import pandas as pdimport numpy as npobj pd.DataFrame(np.random.randint(1, 10, (5,5)),columns[a, b, c, d, e],index[AA, BBB, CC, D, EE])obja b c d e AA 3 9 5 8 2 BBB 1 4 2 2 6 CC 9 2 4 7 6 D 2 5 5 7 1 EE 8 8 8 2 2def group_key(idx):idx 为列索引或行索引return len(idx) obj.groupby(group_key).size() # 等价于 obj.groupby(len).size() 1 1 2 3 3 1 dtype: int64【03x03x03】索引层级分组 通过不同索引层级进行分组 import pandas as pdimport numpy as npcolumns pd.MultiIndex.from_arrays([[Python, Java, Python, Java, Python],[A, A, B, C, B]], names[language, index])obj pd.DataFrame(np.random.randint(1, 10, (5, 5)), columnscolumns)obj language Python Java Python Java Python index A A B C B 0 7 1 9 8 5 1 4 5 4 5 6 2 4 3 1 9 5 3 6 6 3 8 1 4 7 9 2 8 2obj.groupby(levellanguage, axis1).sum() language Java Python 0 9 21 1 10 14 2 12 10 3 14 10 4 17 11obj.groupby(levelindex, axis1).sum() index A B C 0 8 14 8 1 9 10 5 2 7 6 9 3 12 4 8 4 16 4 8【03x04】分组迭代 GroupBy 对象支持迭代对于单层分组可以产生一组二元元组由分组名和数据块组成 import pandas as pdimport numpy as npdata {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randn(8),data2: np.random.randn(8)}obj pd.DataFrame(data)objkey1 key2 data1 data2 0 a one -1.088762 0.668504 1 b one 0.275500 0.787844 2 a two -0.108417 -0.491296 3 b three 0.019524 -0.363390 4 a two 0.453612 0.796999 5 b two 1.982858 1.501877 6 a one 1.101132 -1.928362 7 a three 0.524775 -1.205842for group_name, group_data in obj.groupby(key1):print(group_name)print(group_data)akey1 key2 data1 data2 0 a one -1.088762 0.668504 2 a two -0.108417 -0.491296 4 a two 0.453612 0.796999 6 a one 1.101132 -1.928362 7 a three 0.524775 -1.205842 bkey1 key2 data1 data2 1 b one 0.275500 0.787844 3 b three 0.019524 -0.363390 5 b two 1.982858 1.501877对于多层分组元组的第一个元素将会是由键值组成的元组第二个元素为数据块 import pandas as pdimport numpy as npdata {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randn(8),data2: np.random.randn(8)}obj pd.DataFrame(data)objkey1 key2 data1 data2 0 a one -1.088762 0.668504 1 b one 0.275500 0.787844 2 a two -0.108417 -0.491296 3 b three 0.019524 -0.363390 4 a two 0.453612 0.796999 5 b two 1.982858 1.501877 6 a one 1.101132 -1.928362 7 a three 0.524775 -1.205842for group_name, group_data in obj.groupby([key1, key2]):print(group_name)print(group_data)(a, one)key1 key2 data1 data2 0 a one -1.088762 0.668504 6 a one 1.101132 -1.928362 (a, three)key1 key2 data1 data2 7 a three 0.524775 -1.205842 (a, two)key1 key2 data1 data2 2 a two -0.108417 -0.491296 4 a two 0.453612 0.796999 (b, one)key1 key2 data1 data2 1 b one 0.2755 0.787844 (b, three)key1 key2 data1 data2 3 b three 0.019524 -0.36339 (b, two)key1 key2 data1 data2 5 b two 1.982858 1.501877【03x05】对象转换 GroupBy 对象支持转换成列表或字典 import pandas as pdimport numpy as npdata {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randn(8),data2: np.random.randn(8)}obj pd.DataFrame(data)objkey1 key2 data1 data2 0 a one -0.607009 1.948301 1 b one 0.150818 -0.025095 2 a two -2.086024 0.358164 3 b three 0.446061 1.708797 4 a two 0.745457 -0.980948 5 b two 0.981877 2.159327 6 a one 0.804480 -0.499661 7 a three 0.112884 0.004367grouped obj.groupby(key1)list(grouped) [(a, key1 key2 data1 data2 0 a one -0.607009 1.948301 2 a two -2.086024 0.358164 4 a two 0.745457 -0.980948 6 a one 0.804480 -0.499661 7 a three 0.112884 0.004367), (b, key1 key2 data1 data2 1 b one 0.150818 -0.025095 3 b three 0.446061 1.708797 5 b two 0.981877 2.159327)]dict(list(grouped)) {a: key1 key2 data1 data2 0 a one -0.607009 1.948301 2 a two -2.086024 0.358164 4 a two 0.745457 -0.980948 6 a one 0.804480 -0.499661 7 a three 0.112884 0.004367, b: key1 key2 data1 data2 1 b one 0.150818 -0.025095 3 b three 0.446061 1.708797 5 b two 0.981877 2.159327}【04x00】GroupBy Apply 数据应用 聚合指的是任何能够从数组产生标量值的数据转换过程常用于对分组后的数据进行计算 【04x01】聚合函数 之前的例子已经用过一些内置的聚合函数比如 mean、count、min 以及 sum 等。常见的聚合运算如下表所示 官方文档https://pandas.pydata.org/docs/reference/groupby.html 方法描述count非NA值的数量describe针对Series或各DataFrame列计算汇总统计min计算最小值max计算最大值argmin计算能够获取到最小值的索引位置整数argmax计算能够获取到最大值的索引位置整数idxmin计算能够获取到最小值的索引值idxmax计算能够获取到最大值的索引值quantile计算样本的分位数0到1sum值的总和mean值的平均数median值的算术中位数50%分位数mad根据平均值计算平均绝对离差var样本值的方差std样本值的标准差 应用示例 import pandas as pdimport numpy as npobj {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randint(1,10, 8),data2: np.random.randint(1,10, 8)}obj pd.DataFrame(obj)objkey1 key2 data1 data2 0 a one 9 7 1 b one 5 9 2 a two 2 4 3 b three 3 4 4 a two 5 1 5 b two 5 9 6 a one 1 8 7 a three 2 4obj.groupby(key1).sum()data1 data2 key1 a 19 24 b 13 22obj.groupby(key1).max()key2 data1 data2 key1 a two 9 8 b two 5 9obj.groupby(key1).min()key2 data1 data2 key1 a one 1 1 b one 3 4obj.groupby(key1).mean()data1 data2 key1 a 3.800000 4.800000 b 4.333333 7.333333obj.groupby(key1).size() key1 a 5 b 3 dtype: int64obj.groupby(key1).count()key2 data1 data2 key1 a 5 5 5 b 3 3 3obj.groupby(key1).describe()data1 ... data2 count mean std min 25% ... min 25% 50% 75% max key1 ... a 5.0 3.800000 3.271085 1.0 2.0 ... 1.0 4.0 4.0 7.0 8.0 b 3.0 4.333333 1.154701 3.0 4.0 ... 4.0 6.5 9.0 9.0 9.0[2 rows x 16 columns]【04x02】自定义函数 如果自带的内置函数满足不了我们的要求则可以自定义一个聚合函数然后传入 GroupBy.agg(func) 或 GroupBy.aggregate(func) 方法中即可。func 的参数为 groupby 索引对应的记录。 import pandas as pdimport numpy as npobj {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randint(1,10, 8),data2: np.random.randint(1,10, 8)}obj pd.DataFrame(obj)objkey1 key2 data1 data2 0 a one 9 7 1 b one 5 9 2 a two 2 4 3 b three 3 4 4 a two 5 1 5 b two 5 9 6 a one 1 8 7 a three 2 4def peak_range(df):return df.max() - df.min() obj.groupby(key1).agg(peak_range)data1 data2 key1 a 8 7 b 2 5obj.groupby(key1).agg(lambda df : df.max() - df.min())data1 data2 key1 a 8 7 b 2 5【04x03】对不同列作用不同函数 使用字典可以对不同列作用不同的聚合函数 import pandas as pdimport numpy as npobj {key1 : [a, b, a, b, a, b, a, a],key2 : [one, one, two, three, two, two, one, three],data1: np.random.randint(1,10, 8),data2: np.random.randint(1,10, 8)}obj pd.DataFrame(obj)objkey1 key2 data1 data2 0 a one 9 7 1 b one 5 9 2 a two 2 4 3 b three 3 4 4 a two 5 1 5 b two 5 9 6 a one 1 8 7 a three 2 4dict1 {data1:mean, data2:sum}dict2 {data1:[mean,max], data2:sum}obj.groupby(key1).agg(dict1)data1 data2 key1 a 3.800000 24 b 4.333333 22obj.groupby(key1).agg(dict2)data1 data2mean max sum key1 a 3.800000 9 24 b 4.333333 5 22【04x04】GroupBy.apply() apply() 方法会将待处理的对象拆分成多个片段然后对各片段调用传入的函数最后尝试将各片段组合到一起。 import pandas as pdobj pd.DataFrame({A:[bob,sos,bob,sos,bob,sos,bob,bob],B:[one,one,two,three,two,two,one,three],C:[3,1,4,1,5,9,2,6],D:[1,2,3,4,5,6,7,8]})objA B C D 0 bob one 3 1 1 sos one 1 2 2 bob two 4 3 3 sos three 1 4 4 bob two 5 5 5 sos two 9 6 6 bob one 2 7 7 bob three 6 8grouped obj.groupby(A)for name, group in grouped:print(name)print(group)bobA B C D 0 bob one 3 1 2 bob two 4 3 4 bob two 5 5 6 bob one 2 7 7 bob three 6 8 sosA B C D 1 sos one 1 2 3 sos three 1 4 5 sos two 9 6grouped.apply(lambda x:x.describe()) # 对 bob 和 sos 两组数据使用 describe 方法C D A bob count 5.000000 5.000000mean 4.000000 4.800000std 1.581139 2.863564min 2.000000 1.00000025% 3.000000 3.00000050% 4.000000 5.00000075% 5.000000 7.000000max 6.000000 8.000000 sos count 3.000000 3.000000mean 3.666667 4.000000std 4.618802 2.000000min 1.000000 2.00000025% 1.000000 3.00000050% 1.000000 4.00000075% 5.000000 5.000000max 9.000000 6.000000grouped.apply(lambda x:x.min()) # # 对 bob 和 sos 两组数据使用 min 方法A B C D A bob bob one 2 1 sos sos one 1 2这里是一段防爬虫文本请读者忽略。 本文原创首发于 CSDN作者 TRHX。 博客首页https://itrhx.blog.csdn.net/ 本文链接https://itrhx.blog.csdn.net/article/details/106804881 未经授权禁止转载恶意转载后果自负尊重原创远离剽窃
http://www.pierceye.com/news/885225/

相关文章:

  • 网站系统参数设置定制网站的制作流程
  • 做家教网站公司品牌vi设计升级
  • 唯品会网站建设建议浙江网站建设价格费用
  • 网站建设购买深圳有做网站的公司有哪些
  • 网站预算表怎么做网站域名续费怎么续费
  • 宁波建设网站公众号关注编辑网站教程
  • 怎样自己做刷赞网站开发软件需要多少成本
  • 为什么网站之有首页被收录广西两学一做网站
  • 制作网站需要的软件怎么向google提交网站
  • 济南网站的建设公司网站建设征求意见表
  • 小学校园网站建设简介打开网站弹出一张图片 怎么做
  • 做外贸没有网站需要注意什么条件做简历模板的网站都有哪些
  • 铜陵保障性住房和城乡建设网站舞钢市城乡建设局网站
  • 企业网站总承包建设模式关键步骤凡科论文送审平台
  • 石家庄学校网站建设在线定制签名
  • 新泰网站制作公司免费下载百度seo
  • 江苏海宏建设工程有限公司网站免费软件是怎么盈利的
  • 建设网站需要申请什么推广网站排名
  • 怎么看出网站是dede做的网页的响应式布局
  • 中国农村建设网站静安广州网站建设
  • 全国 做网站的企业wordpress+编辑模板
  • 网站开发需要的编程软件有哪些海门住房和城乡建设局网站
  • 南宁上林网站建设交换链接是什么
  • 什么网站做简历好api模式网站开发
  • 网站建设与管理专业好吗网络推广seo培训班
  • 常用网站架构辽宁建设工程信息网审计报告
  • 绿色大气网站模板坪山网站建设公司
  • 网站建设动态wordpress禁止自动升级
  • 网站建设网站建设平台网站建设费计入什么科目比较好
  • 豪圣建设项目管理网站公司网站设计与管理