导语:继续研究来自于excelxor.com的案例。这个案例似乎又有点复杂,但其中许多公式技术仍值得我们反复琢磨。...本次的练习是:如下图1所示,单元格区域A2:E5中包含一系列值和空单元格,其中有重复值,要求从该单元格区域中生成按字母顺序排列的不重复值列表,如图1中G列所示。 ?...Range1,""",COUNTIF(Range1,"<"&Arry4)),0)) 实际上,这是提取唯一且按字母顺序排列的值的标准公式构造...唯一不同的是,Range1包含一个4行5列的二维数组,而Arry4是通过简单地将Range1中的每个元素进行索引而得出的,实际上是20行1列的一维区域。...:上述数组中非零值的位置表示在该区域内每个不同值在该数组中的首次出现,因此提供了一种仅返回唯一值的方法。
,并计算每个组合的计数 df = detectors[, by = ....= max(df$N2) # 计算'df'数据框中'N2'列的最大值 # 根据'kind'和'.pred_class'列创建新的'class'列,用于描述组合类型 df$class = paste0(....pred_class` |> as.numeric() # 计算x数据框中每个元素的纵坐标,并存储在'y0'列中 x$r = out[index]$radius # 将x数据框中每个元素的半径信息存储在...'r'列中 return(x) }) packing <- rbindlist(packing) # 数据合并 数据可视化 ggplot() + # 添加散点图图层,其中数据来自packing..."moon"(月亮)图层,其中数据来自packing数据框中具有非缺失'native'列的行 geom_moon(data = packing[which(!
=True) 更改数据格式astype() isin #计算一个“Series各值是否包含传入的值序列中”的布尔数组 unique #返回唯一值的数组...')#两行key这一列一样就算重复 df['A'].unique()# 返回唯一值的数组(类型为array) df.drop_duplicates(['k1'])# 保留k1列中的唯一值的行,默认保留第一行...df.drop_duplicates(['k1','k2'], take_last=True)# 保留 k1和k2 组合的唯一值的行,take_last=True 保留最后一行 ---- 排序 索引排序...# 将columns中的其中两列:race和sex的值设置索引,race为一级,sex为二级 # inplace=True 在原数据集上修改的 adult.set_index(['race','sex...B是列范围 df.loc[1:4,['petal_length','petal_width']] # 需求1:创建一个新的变量 test # 如果sepal_length > 3 test = 1 否则
目录 R语言第一章数据处理基础①读取EXEL表格数据 R语言第一章数据处理基础②一行代码完成数据透视表 rpivotTable:R的数据透视表 安装 # devtools::install_github...(c("ramnathv/htmlwidgets", "smartinsightsfromdata/rpivotTable")) 数据透视表应出现在的RStudio的Viewer中。...如果仅选择数据,则数据透视表将打开,行和列上没有任何内容(但您可以随时拖放行或列中的任何变量) rows and cols允许用户创建报告,即指示哪个属性将在行和列上。...这里的选项很多:计数,计数唯一值,列表唯一值,总和,整数和,平均值,总和,80%上限,80%下限,总和为总分数,总和为行数,总和为列的分数,计为总分数,计算为行的分数,计为列的分数 renderers决定了用于显示的图形渲染类型...设置顺序,例如下面要以设置的顺序显示Hair分类: library(rpivotTable) data(HairEyeColor) rpivotTable(data = HairEyeColor, rows
最近公司在做关联图谱的项目,想挖掘团伙犯罪。在准备关系数据时需要根据两列组合删除数据框中的重复值,两列中元素的顺序可能是相反的。...本文介绍一句语句解决多列组合删除数据框中重复值的问题。 一、举一个小例子 在Python中有一个包含3列的数据框,希望根据列name1和name2组合(在两行中顺序不一样)消除重复项。...由于原始数据是从hive sql中跑出来,表示商户号之间关系的数据,merchant_r和merchant_l中存在组合重复的现象。现希望根据这两列组合消除重复项。...()] print(df_final.shape) 得到结果: (65, 3) 2.2代码解析 df[['merchant_r', 'merchant_l']]:从df中取出待组合删重的两列。...从上图可以看出用set替换frozense会报不可哈希的错误。 三、把代码推广到多列 解决多列组合删除数据框中重复值的问题,只要把代码中取两列的代码变成多列即可。
如果您有一个字符串类型的 Series,其中有很多重复的元素(即 Series 中的唯一元素数量远小于 Series 的长度),这可能会对性能产生影响。...与 R 的 factor 函数相反,将分类数据作为唯一输入来创建新的分类系列 不会 删除未使用的类别,而是创建一个与传入的相等的新分类系列!...如果您有一个类型为字符串的Series,其中许多元素重复(即Series中的唯一元素数量远小于Series的长度),这会对性能产生一些影响。...如果您有一个字符串类型的Series,其中有很多重复的元素(即Series中唯一元素的数量远小于Series的长度),这会对性能产生一些影响。...与 R 的factor函数相反,将分类数据作为创建新分类系列的唯一输入将不会删除未使用的类别,而是创建一个等于传入的新分类系列!
这对于顺序数据(例如时间序列)非常有用。 8.删除缺失值 处理缺失值的另一种方法是删除它们。“已退出”列中仍缺少值。以下代码将删除缺少任何值的行。...让我们从一个简单的开始。下面的代码将根据地理位置和性别的组合对行进行分组,然后为我们提供每组的平均流失率。...method参数指定如何处理具有相同值的行。first表示根据它们在数组(即列)中的顺序对其进行排名。 21.列中唯一值的数量 使用分类变量时,它很方便。我们可能需要检查唯一类别的数量。...但是,这可能会导致不必要的内存使用,尤其是当分类变量的基数较低时。 低基数意味着与行数相比,一列具有很少的唯一值。例如,Geography列具有3个唯一值和10000行。...在计算元素的时间序列或顺序数组中的变化百分比时很有用。 ? 从第一元素(4)到第二元素(5)的变化为%25,因此第二个值为0.25。
创建DataFrame有多种方式: 以字典的字典或Series的字典的结构构建DataFrame,这时候的最外面字典对应的是DataFrame的列,内嵌的字典及Series则是其中每个值。...从列表的字典构建DataFrame,其中嵌套的每个列表(List)代表的是一个列,字典的名字则是列标签。这里要注意的是每个列表中的元素数量应该相同。...使用这种方式,如果不通过columns指定列的顺序,那么列的顺序会是随机的。...DataFrame的每一列,这里使用的是匿名lambda函数,与R中apply函数类似 设置索引 df.set_index('one') 重命名列 df.rename(columns={u'one':'...1'}, inplace=True) 查看每个列的数据类型 df.dtypes R中的对应函数: str(df) 查看最大值/最小值 pd.Series.max()pd.Series.idxmax()
让我们创建一个列,根据客户的余额对客户进行排名。...df_new['rank'] = df_new['Balance'].rank(method='first', ascending=False).astype('int') 21.列中的唯一值数 它使用分类变量时派上用场...但是,它可能会导致不必要的内存使用,尤其是当分类变量具有较低的基数。 低基数意味着列与行数相比几乎没有唯一值。例如,地理列具有 3 个唯一值和 10000 行。...我发现使用 Pandas 创建基本绘图更容易,而不是使用其他数据可视化库。 让我们创建平衡列的直方图。 ? 26.减少浮点数小数点 pandas 可能会为浮点数显示过多的小数点。...在计算时间序列或元素顺序数组中更改的百分比时,它很有用。
] ) 用多指标建立一个DataFrame 除了从CSV文件中读取和从现有的列中建立外,还有一些方法来创建MultiIndex。...这有时可能会让人恼火,但这是在有大量缺失值时给出可预测结果的唯一方法。 考虑一下下面的例子。你希望一周中的哪几天以何种顺序出现在右表中?...即使有些标签丢失了,它也会记住顺序。它最近被顺利地集成到Pandas工具链中。它唯一缺乏的是基础设施。...', 'L', 'K'] ) 其中['M', 'L', 'K']是所需的level顺序。...一种方法是将所有不相关的列索引层层叠加到行索引中,进行必要的计算,然后再将它们解叠回来(使用pdi.lock来保持原来的列顺序)。
df.year.nunique() 10 df.group.nunique() 3 我们可以直接将nunique函数应用于dataframe,并查看每列中唯一值的数量: ?...如果axis参数设置为1,nunique将返回每行中唯一值的数目。 13. Lookup 'lookup'可以用于根据行、列的标签在dataframe中查找指定值。假设我们有以下数据: ?...我们要创建一个新列,该列显示“person”列中每个人的得分: df['Person_point'] = df.lookup(df.index, df['Person']) df ? 14....Merge Merge()根据共同列中的值组合dataframe。考虑以下两个数据: ? 我们可以基于列中的共同值合并它们。设置合并条件的参数是“on”参数。 ?...df1和df2是基于column_a列中的共同值进行合并的,merge函数的how参数允许以不同的方式组合dataframe,如:“inner”、“outer”、“left”、“right”等。
每种方法都将包括说明,可视化,代码以及记住它的技巧。 Pivot 透视表将创建一个新的“透视表”,该透视表将数据中的现有列投影为新表的元素,包括索引,列和值。...初始DataFrame中将成为索引的列,并且这些列显示为唯一值,而这两列的组合将显示为值。这意味着Pivot无法处理重复的值。 ? 旋转名为df 的DataFrame的代码 如下: ?...结果是ID列的值(a,b,c)和值列(B,C)及其对应值的每种组合,以列表格式组织。 可以像在DataFrame df上一样执行Mels操作 : ?...可以按照与堆叠相同的方式执行堆叠,但是要使用level参数: df.unstack(level = -1)。 Merge 合并两个DataFrame是在共享的“键”之间按列(水平)组合它们。...另一方面,如果一个键在同一DataFrame中列出两次,则在合并表中将列出同一键的每个值组合。
比如下面自定义了abc3个分类,并指定了顺序。然后就可以通过dtype指定自定义的数据类型了,d不在定义类型abc中,显示为空。...# 删除指定的分类r和t s.cat.remove_categories(['r','t']) # 自动删除未使用的分类 s.cat.remove_unused_categories() 顺序 默认情况下分类数据不自动排序...": "category"}) 创建了两个DataFrame,其中df1包含了species并且为object类型,df1_cat复制了df1,但指定了species为category类型。...在这种情况下,速度提高了大约14倍(因为内部优化会让.str.upper()仅对分类的唯一类别值调用一次,然后根据结果构造一个seires,而不是对结果中的每个值都去调用一次)。 怎么理解?...使用.unstack()会把species索引移到列索引中(类似pivot交叉表的操作)。而当添加的新列不在species的分类索引中时,就会报错。
如上所示,创建了一个4行5列的矩阵,矩阵中的元素按照行填充,分表定义了行名、列名。 我们可以使用下标和方括号来选择矩阵中的行、 列或元素。...数组可通过array函数创建。其中vector包含了数组中的数据, dimensions是一个数值型向量,给出了各个维度下标的最大值,dimnames是可选的、各维度名称标签的列表。...数据框可通过函数data.frame()创建:mydata <- data.frame(col1, col2, col3,...)其中的列向量col1、 col2、 col3等可为任何类型(如字符型、数值型或逻辑型...每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。 访问数据框中元素的方式有若干种。...函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1...k](其中k是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。
rownames(df), colnames(df),返回行名与列名。 构建data frame 本质就是不同类型向量的排列组合。 首先构建vectors。...当通过名称对数据框进行选择的子集不存在时,R会帮我们创建一个新的内容。 排序 order() 会将其中的元素按照大小顺序排列,并按照大小顺序返回元素所在的位置数据。...另外,tibble类型允许其中的列是列表类型, 这样, 该列的每个元素就可以是复杂类型, 比如建模结果(列表), 元素之间可以保存不等长的值。...R 会为每个独立的向量分配一个整数,创建一个value-label 对,value 对应向量中的元素,label 对应分配的数字。...1)按照list中顺序获取。
上篇我们了解了Python中pandas内封装的关于数据框的常用操作方法,而作为专为数据科学而生的一门语言,R在数据框的操作上则更为丰富精彩,本篇就R处理数据框的常用方法进行总结: 1.数据框的生成 利用...:数据框的构成向量的变量名,顺序即为生成的数据框列的顺序 row.names:对每一行命名的向量 stringAsFactors:是否将数据框中字符型数据类型转换为因子型,默认为FALSE > a <-...在R中,通过内联键合并数据框的函数为merge(),其主要参数如下: by:对两个数据框建立内联的共有列(元素交集部分不能为空集),以此列为依据,返回内联列取交集后剩下的样本行 sort:是否对合并后的数据框以内联列为排序依据进行排序...,R中的数据框合并的原则是不返回含有缺失值的行 > merge(df1,df2,by='ID') ID a b 1 a 2 9 2 b 1 10 3 c 3 8 4 d 4...duplicated()以及数据框元素删减方法联合起来完成去重的工作,先依次介绍这两个方法: duplicated(),用于检测输入的列中有无符合元素重复的行(若输入多列则检测是否存在行的多列组合方式中有无满足重复的行
这里我们将展示三种合并的简单示例,并在下面进一步讨论详细选项。 一对一连接 也许最简单的合并表达式是一对一连接,这在很多方面与“数据集的组合:连接和附加”中的按列连接非常相似。。...合并的结果是一个新的DataFrame,它组合了两个输入的信息。 请注意,每列中的条目顺序不一定得到保留:在这种情况下,employee列的顺序在df1和df2之间有所不同。...拥有带有supervisor信息的附加列,其中信息在输入所需的一个或多个位置重复。...为连接指定集合运算 在前面的所有例子中,我们在执行连接时掩盖了一个重要的考虑因素:连接中使用的集合运算的类型。当一个值出现在一个键列而不出现在另一个键列中时,会出现此情况。...尝试使用真实数据源回答问题时,这种混乱的数据合并是一项常见任务。我希望这个例子让你了解,如何组合我们所涵盖的工具,来从你的数据中获得见解!
index:表示传入的索引,必须是唯一的,且与数据的长度相同。若没有传入索引,则创建的Series类对象会自动生成0~N的整数索引。 dtype:表示数据的类型。...DataFrame类对象的行索引位于最左侧一列,列索引位于最上面一行,且每个列索引对应着一列数据。DataFrame类对象其实可以视为若干个公用行索引的Series类对象的组合。...) print(df2.sort_values(['a','c'])) # 多列排序,按列顺序排序 输出为: 排序2 - 索引排序 .sort_index pandas中提供了一个sort_index...Series类对象还是创建DataFrame类对象,根本目的在于对Series类对象或DataFrame类对象中的数据进行处理,但在处理数据之前,需要先访问Series类对象或DataFrame类对象中的数据...变量.at[行索引, 列索引] 变量.iat[行索引, 列索引] 以上方式中,"at[行索引, 列索引]"中的索引必须为自定义的标签索引,"iat[行索引, 列索引]"中的索引必须为自动生成的整数索引
我们的查询想要对 total 字段进行降序排序,为此我们将在下一段中创建一个特定的 Sort Comparator。...B 和 C 键值对的 key 有相同的 state 和 city,因此它们组合在一起在一个 reducer() 中调用。传递给函数的 key 是分组中第一个键值对的 key,因此它依赖于排序。...B, C ,D 键值对中的 key 都具有相同的 state,因此它们被组合在一起以在一个 reducer() 中调用。 在某些情况下分组可能很有用。...对于我们的查询,我们只需要打印出每个记录的字段,对于分组无关紧要。...其中两项输出有 Worland 的条目。 正如前面所解释的,每个输出的结果都是按照 state 和 city 的上升顺序排列,并且 donation 降序排列。
(一)在R中新建项目方式:RStudio中,菜单栏File→NewProject→NewDirectory→NewProject→DirectoryName该方式通过新建一个目录的方式来新建一个项目,创建一个...该项目的工作目录即为新建该项目创建的目录。即后续创建的脚本文件默认保存位置均为该目录。项目目录移动后,项目中的文件、脚本仍然可以通过项目文件(Rproj)关联使用。...不建议用带引号的字符。可以用字母和数字的组合,但是数字要在字母后面。不能用空格,运算符号在名称中。可以使用下划线。不建议用中文作为变量名称。2....(1,15,2)+1)c(1:7) #先将8个奇数变成偶数,再取出其中7个> 1 2 4 6 8 10 12 14Tips:向量只允许一种数据类型存在,当出现不同类型的数据时,会自动根据下图的优先顺序进行转换...将k1作为y轴;k2作为x轴图片图片plot() 默认作散点图,可以指定另外的作图形式(折线图,点线图等,详见帮助文档)boxplot() 用~连接指定需要作图的数学公式中的函数和自变量(可以是组合分组变量
领取专属 10元无门槛券
手把手带您无忧上云