excelperfect Q:数据放置在列A中,我要得到这些数据中任意3个数据的所有可能组合。如下图1所示,列A中存放了5个数据,要得到这5个数据中任意3个数据的所有可能组合,如列B中所示。...Dim n AsLong Dim vElements As Variant Dim lRow As Long Dim vResult As Variant '要组合的数据在当前工作表的列...A Set rng =Range("A1", Range("A1").End(xlDown)) '设置每个组合需要的数据个数 n = 3 '在数组中存储要组合的数据...lRow = lRow + 1 Range("B" & lRow) = Join(vResult, ", ") '每组组合放置在多列中...代码的图片版如下: ? 如果将代码中注释掉的代码恢复,也就是将组合结果放置在多列中,运行后的结果如下图2所示。 ? 图2
本次的练习是:如下图1所示,单元格区域A2:E5中包含一系列值和空单元格,其中有重复值,要求从该单元格区域中生成按字母顺序排列的不重复值列表,如图1中G列所示。 ?...Range1,""",COUNTIF(Range1,"<"&Arry4)),0)) 实际上,这是提取唯一且按字母顺序排列的值的标准公式构造...,唯一区别是提取值的区域不是单列、一维区域,而是二维区域。...而它们都引用了Arry1: =ROW(INDIRECT("1:"&COLUMNS(Range1)*ROWS(Range1))) 名称Range1代表的区域有4行5列,因此转换为: ROW(INDIRECT...唯一不同的是,Range1包含一个4行5列的二维数组,而Arry4是通过简单地将Range1中的每个元素进行索引而得出的,实际上是20行1列的一维区域。
喜欢的同学记得点赞、转发、收藏哦~ 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即时查收 1 题目 编写函数fun() 函数功能:将M行N列的二维数组中的字符数据...,按列的顺序依次放到一个字符串中 例如: 二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容是:WSHWSHWSH [image.png] 2 思路 第一层循环按照列数进行...M 3 #define N 4 /** 编写函数fun() 函数功能:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中 例如: 二维数组中的数据为: W W W W S S S..."%c\t", a[i][j]); // printf("%c\t", *(*(a*i)+j)); // 指针表示 } printf("\n"); } printf("按列的顺序依次.../demo 二维数组中元素: M M M M S S S S H H H H 按列的顺序依次: MSHMSHMSHMSH -- END -- 喜欢本文的同学记得点赞、转发、收藏~ 更多内容,欢迎大家关注我们的公众号
return count; } } 第一个for循环控制行,第二个while循环来二分查找, 让Low=high 结束找到第一个负数开始出现的下标
下图展示了这个过程: Index在Pandas中有很多用途: 算术运算按索引对齐 它使按该列进行的查找更快,等等。 所有这些都是以较高的内存消耗和不太明显的语法为代价的。...为Pandas提供列的名称总是一个好主意,而不是整数标签(使用columns参数),有时也可以提供行(使用index参数,尽管rows听起来可能更直观)。...为了满足这些需求,dataframes,就像series一样,有两种可选的索引模式:按标签索引的loc和按位置索引的iloc。 在Pandas中,引用多行/多列是一个副本,而不是视图。...7.3 基于多指数的数据叠加 如果行标签和列标签一致,concat可以执行与垂直堆叠类似的多索引(就像NumPy中的dstack): 如果行和/或列部分重叠,Pandas将相应地对齐名称,这很可能不是你想要的...默认情况下,Pandas会对所有远端可求和的东西进行求和,因此你需要缩小选择范围,如下所示: 注意,当对单个列求和时,你将得到一个Series而不是DataFrame。
3、从字典创建一个系列 字典(dict)可以作为输入传递,如果没有指定索引,则按排序顺序取得字典键以构造索引。如果传递了索引,索引中与标签对应的数据中的值将被拉出。 ?...9、列选择 在刚学Pandas时,行选择和列选择非常容易混淆,在这里进行一下整理常用的列选择。 ? 10、行选择 整理多种行选择的方法,总有一种适合你的。 ? ? ?...13、聚合 可以按行、列进行聚合,也可以用pandas内置的describe对数据进行操作简单而又全面的数据聚合分析。 ? ?...14、聚合函数 data.function(axis=0) 按列计算 data.function(axis=1) 按行计算 ? 15、分类汇总 可以按照指定的多列进行指定的多个运算进行汇总。 ?...20、更改列名(columns index) 更改列名我认为pandas并不是很方便,但我也没有想到一个好的方案。 ?
目录 Pandas 排序方法入门 准备数据集 熟悉 .sort_values() 熟悉 .sort_index() 在单列上对 DataFrame 进行排序 按升序按列排序 更改排序顺序 选择排序算法...与 using 的不同之处.sort_values()在于您是根据其行索引或列名称对 DataFrame 进行排序,而不是根据这些行或列中的值: DataFrame 的行索引在上图中以蓝色标出。...注意:在 Pandas 中,kind当您对多个列或标签进行排序时会被忽略。 当您对具有相同键的多条记录进行排序时,稳定的排序算法将在排序后保持这些记录的原始顺序。...排序算法应用于轴标签而不是实际数据。这有助于对 DataFrame 进行目视检查。...通常,这是使用 Pandas 分析数据的最常见和首选方法,因为它会创建一个新的 DataFrame 而不是修改原始数据。这允许您保留从文件中读取数据时的数据状态。
与 using 的不同之处.sort_values()在于您是根据其行索引或列名称对 DataFrame 进行排序,而不是根据这些行或列中的值: DataFrame 的行索引在上图中以蓝色标出。...注意:在 Pandas 中,kind当您对多个列或标签进行排序时会被忽略。 当您对具有相同键的多条记录进行排序时,稳定的排序算法将在排序后保持这些记录的原始顺序。...您可以看到更改列的顺序也会更改值的排序顺序。 按降序按多列排序 到目前为止,您仅对多列按升序排序。在下一个示例中,您将根据make和model列按降序排序。...排序算法应用于轴标签而不是实际数据。这有助于对 DataFrame 进行目视检查。...通常,这是使用 Pandas 分析数据的最常见和首选方法,因为它会创建一个新的 DataFrame 而不是修改原始数据。这允许您保留从文件中读取数据时的数据状态。
二者之间主要区别是: 从数据结构上看: numpy的核心数据结构是ndarray,支持任意维数的数组,但要求单个数组内所有数据是同质的,即类型必须相同;而pandas的核心数据结构是series和dataframe...index/columns/values,分别对应了行标签、列标签和数据,其中数据就是一个格式向上兼容所有列数据类型的array。...自然毫无悬念 dataframe:无法访问单个元素,只能返回一列、多列或多行:单值或多值(多个列名组成的列表)访问时按列进行查询,单值访问不存在列名歧义时还可直接用属性符号" ....由于pandas是带标签的数组,所以在广播过程中会自动按标签匹配进行广播,而非类似numpy那种纯粹按顺序进行广播。...例如,如下示例中执行一个dataframe和series相乘,虽然二者维度不等、大小不等、标签顺序也不一致,但仍能按标签匹配得到预期结果 ?
DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)。...(dup_labels) 选择重复的标签,会显示所有的结果。...'dense' 类似于'min'方法,但是排名总是在组间增加1,而不是组中相同的元素数 ---- 2.11 带有重复标签的轴索引 直到目前为止,所介绍的所有范例都有着唯一的轴标签(索引值)。...无论如何,在计算相关系数之前,所有的数据项都会按标签对齐。 ---- 3.2 唯一值、值计数以及成员资格 还有一类方法可以从一维Series的值中抽取信息。...计算Series中的唯一值数组,按发现的顺序返回 value_counts 返回一个Series,其索引为唯一值,其值为频率,按计数值降序排列 有时,你可能希望得到DataFrame中多个相关列的一张柱状图
这是因为Pandas提供了太多方法可以做同样的事情,方法选择不当,可能导致一些意想不到的错误。...loc:通过标签选取数据,即通过index和columns的值进行选取。loc方法有两个参数,按顺序控制行列选取,范围包括start和end。...iloc:通过行号选取数据,即通过数据所在的自然行列数为选取数据。iloc方法也有两个参数,按顺序控制行列选取。...= 50 将新值分配给“ y”列,但在此临时创建的副本上,而不是原始DataFrame上。...这是因为,当我们从DataFrame中仅选择一列时,Pandas会创建一个视图,而不是副本。关于视图和副本的区别,下图最为形象: ?
Dataframe中的数据以一个或多个二维块存放,不是列表、字典或一维数组结构。...]一般用于选择列,[]中写列名 输出为: df.loc[] - 按index选择行 # df.loc[] - 按index选择行 df1 = pd.DataFrame(np.random.rand...= df2.loc[[3,2,1]] #print(data3) print(data4) print('多标签索引\n-----') # 多个标签索引,如果标签不存在,则返回NaN # 顺序可变...(行标签)对齐 输出为: /排序 排序1 - 按值排序 .sort_values pandas中可以使用sort_values()方法将Series、DataFrmae类对象按值的大小排序。...变量.loc[索引] 变量.iloc[索引] 以上方式中,"loc[索引]"中的索引必须为自定义的标签索引,而"iloc[索引]"中的索引必须为自动生成的整数索引。
如果将列表传递给索引运算符,它将以指定顺序返回列表中所有列的数据帧。 步骤 2 显示了如何选择单个列作为数据帧而不是序列。 最常见的是,使用字符串选择单个列,从而得到一个序列。...第 2 步显示了如何按单个列对数据帧进行排序,这并不是我们想要的。 步骤 3 同时对多个列进行排序。...和cumprod 四、选择数据子集 在本章中,我们将介绍以下主题: 选择序列数据 选择数据帧的行 同时选择数据帧的行和列 同时通过整数和标签和选择数据 加速标量选择 以延迟方式对行切片 按词典顺序切片...但是,它还允许您根据索引中值的字典顺序选择数据。 具体来说,.loc允许您使用切片符号按词典顺序选择带有索引的所有行。 仅在对索引排序时有效。...布尔数组的整数位置与数据帧的整数位置对齐,并且过滤器按预期进行。 这些数组也可以与.loc运算符一起使用,但是它们对于.iloc是必需的。 步骤 6 和 7 显示了如何按列而不是按行进行过滤。
前言 Pandas中的多级索引(MultiIndex)是指在一个DataFrame或Series中,使用多个索引级别来组织数据。多级索引可用于存储高维数据,如时间序列数据或具有多个分类变量的数据。...它方便快捷,但缺乏IDE的支持(没有自动补全,没有语法高亮等),而且它只过滤行,而不是列。这意味着你不能在不转置DataFrame的情况下用它实现df:, ’ population '。...那么不那么琐碎的顺序呢,比如美国的州的顺序? 在这种情况下,Pandas所做的只是简单地按字母顺序排序,如下所示: 虽然这是一个合理的默认,但感觉上仍然是错误的。应该有一个解决方案!有一个。...即使缺少一些标签,它也会记住顺序。它最近已经顺利集成到Pandas工具链中。它唯一缺少的是基础设施。...上面的所有操作都是从传统意义上理解“级别”这个词的(级别的标签数量与数据框中的列数量相同),隐藏了索引的机制。标签和索引。来自最终用户的代码。
这个过程如下所示: 索引在Pandas中有很多用途: 它使通过索引列的查询更快; 算术运算、堆叠、连接是按索引排列的;等等。 所有这些都是以更高的内存消耗和更不明显的语法为代价的。...第二种情况,它对行和列都做了同样的事情。向Pandas提供列的名称而不是整数标签(使用列参数),有时提供行的名称。...DataFrame有两种可供选择的索引模式:loc用于通过标签进行索引,iloc用于通过位置索引进行索引。 在Pandas中,引用多行/列是一种复制,而不是一种视图。...就像1:1的关系一样,要在Pandas中连接一对1:n的相关表,你有两个选择。...默认情况下,Pandas会对任何可远程求和的东西进行求和,所以必须缩小你的选择范围,如下图: 注意,当对单列求和时,会得到一个Series而不是一个DataFrame。
获取 DataFrame 中的一行或多行数据 要获取某一行,你需要用 .loc[] 来按索引(标签名)引用这一行,或者用 .iloc[],按这行在表中的位置(行数)来引用。 ?...交叉选择行和列中的数据 我们可以用 .xs() 方法轻松获取到多级索引中某些特定级别的数据。比如,我们需要找到所有 Levels 中,Num = 22 的行: ?...因为我们没有指定堆叠的方向,Pandas 默认按行的方向堆叠,把每个表的索引按顺序叠加。 如果你想要按列的方向堆叠,那你需要传入 axis=1 参数: ? 注意,这里出现了一大堆空值。...和 .merge() 不同,连接采用索引作为公共的键,而不是某一列。 ? 同样,inner 代表交集,Outer 代表并集。...,index 表示按该列进行分组索引,而 columns 则表示最后结果将按该列的数据进行分列。
3 4 dtype: int64 Index 对象是 Pandas 中另一个重要的数据结构,它可以用来表示 Series 或 DataFrame 中的行或列的标签。...Pandas有df.insert方法,但它只能将列(而不是行)插入到dataframe中(并且对series不起作用)。...我实现了一个名为insert的函数,可以自动执行这个过程: 注意(就像在df.insert中一样)插入位置由位置0而不是索引中元素的标签。...,而不是第一次出现的副本。...实际上,如果分组中的元素不是连续存储的,它也同样有效,因此它更接近于collections.defaultdict,而不是itertools.groupby。它总是返回一个没有重复项的索引。
df.merge--可以用名字指定要合并的列,不管这个列是否属于索引。 按值查找元素 考虑以下Series对象: 索引提供了一种快速而方便的方法,可以通过标签找到一个值。但是,通过值来寻找标签呢?...Pandas有df.insert方法,但它只能将列(而不是行)插入到数据框架中(而且对序列根本不起作用)。...pdi中实现了一个叫做insert的函数,可以自动完成这个过程: 注意,(就像在df.insert中一样)插入的位置是由0的位置给出的,而不是由索引中的元素的标签。...请注意,s.unique()比np.unique要快(O(N)vs O(NlogN)),它保留了顺序,而不是像np.unique那样返回排序后的结果。...字符串和正则表达式 几乎所有的Python字符串方法在Pandas中都有一个矢量的版本: count, upper, replace 当这样的操作返回多个值时,有几个选项来决定如何使用它们: split
目录 查看 pandas 及其支持项的版本 创建 DataFrame 重命名列 反转行序 反转列序 按数据类型选择列 把字符串转换为数值 优化 DataFrame 大小 用多个文件建立 DataFrame...逗号前面的分号表示选择所有行,逗号后面的 ::-1 表示反转列,这样一来,country 列就跑到最右边去了。 6. 按数据类型选择列 首先,查看一下 drinks 的数据类型: ?...选择所有数值型的列,用 selec_dtypes() 方法。 ? 同样的方法,还可以选择所有字符型的列。 ? 同理,还可以用 datetime 选择日期型的列。 传递列表即可选择多种类型的列。 ?...,这是因为 data 目录里还有一个叫 stocks.csv 的文件,如果用 *,会读取出 4 个文件,而不是原文中的 3 个文件。 ? 生成的 DataFrame 索引有重复值,见 “0、1、2”。...用 dropna() 删除列里的所有缺失值。 ? 只想删除列中缺失值高于 10% 的缺失值,可以设置 dropna() 里的阈值,即 threshold. ? 16.
一个数据帧代表一个或多个按索引标签对齐的Series对象。 每个序列将是数据帧中的一列,并且每个列都可以具有关联的名称。...-2e/img/00065.jpeg)] 该查找是通过标签值而不是从 0 开始的位置进行的。...首先是.reindex()方法的结果是新的Series,而不是就地修改。 新的Series具有带有标签的索引,如传递给函数时所指定。 将为原始Series中存在的每个标签复制数据。...-2e/img/00203.jpeg)] 如果要在场景中获取特定的Price列,则需要按位置而不是名称进行检索。...对列重新排序 通过按所需顺序选择列,可以重新排列列的顺序。 下面通过反转列进行演示。