题意 给出两个字符串, 你需要修改第一个字符串,将所有与第二个字符串中相同的字符删除, 并且第二个字符串中不同的字符与第一个字符串的不同字符连接 样例 给出 s1 = aacdb, s2 = gafd...以 s1 = aacdb, s2 = gafd 为例 先将 s2 的每一个字符都放进 Map 集合中,将字符当作键,将值赋为 1,此时 Map 集合中应为: {"g':1, "a":1, "f":1,...然后将 s1 的每一个字符依次判断是否存在与 Map 集合的 Key 中,如果相等则将 集合中该 Key 的值变为 2,如果不相等,则将结果加入到字符串缓冲区中。...最后将 s2 再遍历一次,将在 Map 集合中 Value 为 1 的 Key 依次添加到字符串缓冲区中即可。...sb.append(c); } } return sb.toString(); } } 原题地址 Lintcode:连接两个字符串中的不同字符
连接两个字符串中的不同字符。 给出两个字符串, 你需要修改第一个字符串,将所有与第二个字符串中相同的字符删除, 并且第二个字符串中不同的字符与第一个字符串的不同字符连接。...样例 给出 s1 = aacdb, s2 = gafd 返回 cbgf 给出 s1 = abcs, s2 = cxzca; 返回 bsxz c++11中规定字符串可以直接相加,字符串对象可以加字符串常量...string::find()函数很好用,这里恰好可以做一个总结: 共有下面四种函数原型: 四种函数原型返回值都是size_t,即字符串的一个索引,如果找到返回索引,如果找不到返回-1,即string...//可以直接查找字符串对象, size_t find (const string& str, size_t pos = 0) const noexcept; c-string (2) //从类型的字符串...,定义一个新的string对象res,然后先遍历s1,在s2中寻找s1的每个字符,找不到的话就把这个字符加到res上,然后对s2做同样的操作,就能找到s2中和s1不同的字符了,这样最后加起来就只最终的res
因为nan在Numpy中的类型是浮点,因此整型列会转为浮点;而字符型由于无法转化为浮点型,只能归并为object类型('O'),原来是浮点型的则类型不变。...对于一个dataframe而言,判断缺失的主要方法就是isnull()或者isna(),这两个方法会直接返回True和False的布尔值。可以是对整个dataframe或者某个列。...比如一行数据可能一个值都没有,如果这个样本进入模型,会造成很大的干扰。因此,行列两个缺失率通常都要查看并统计。 操作很简单,只需要在sum()中设置axis=1即可。...: float64 cumsum累加会忽略NA,但值会保留在列中,可以使用skipna=False跳过有缺失值的计算并返回缺失值。...3、计数 # 对列计数 df.count() >> A 4 B 3 C 4 D 3 dtype: int64 缺失值不进入计数范围里。
要连接沿轴。 join: {‘内部’、 ‘外’},默认 ‘外’。如何处理其他 axis(es) 上的索引。联盟内、 外的交叉口。 ignore_index︰ 布尔值、 默认 False。...如果多个级别获得通过,应包含元组。 levels︰ 列表的序列,默认为无。具体水平 (唯一值) 用于构建多重。否则,他们将推断钥匙。 names︰ 列表中,默认为无。由此产生的分层索引中的级的名称。...= 'beijing'), ['id','city','age','category','gender']].sort(['id']) 4、对筛选后的数据按city列进行计数 df_inner.loc...id字段进行计数 df_inner.groupby('city')['id'].count() 3、对两个字段进行汇总计数 df_inner.groupby(['city','size'])['id']...['price'].std() 7、计算两个字段间的协方差 df_inner['price'].cov(df_inner['m-point']) 8、数据表中所有字段间的协方差 df_inner.cov
首先:JOIN 通常与 ON 关键字搭配使用 其次我们来看我们的两个表格: table1: ? table2: ?...在这里,INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。...,它不管on中的条件是否为真,都会返回左边表中的记录。...在这里我们使用on 条件是 table1中的age1和table2中的age2相同,那么我们运行结果如下: ?...是否输出的结果把两表给结合起来了,你们发现,age1不同的数据并没有输出出来,其实这样的结果比较像数学中的交集呢?这个就是 INNER jion
如果比较中的两个值不相等,则返回true;否则,返回false。 ...,在传递的MultiIndex级别上匹配索引值 返回:结果:DataFrame 范例1:采用ne()用于检查序列和 DataFrame 之间是否不相等的函数。 ... # evaluate inequality over the index axis df.ne(sr, axis = 0) 输出: 所有真值单元格都表示比较中的值彼此不相等,而所有假值单元格都表示比较中的值彼此相等...范例2:采用ne()用于检查两个datframe是否不相等的函数。一个 DataFrame 包含NA值。 ...d1f.ne(df2) 输出: 所有真值单元格都表示比较中的值彼此不相等,而所有假值单元格都表示比较中的值彼此相等。
参考链接: Python | 使用Pandas进行数据分析 相关系数和协方差唯一值值计数及成员资格处理缺失数据层次化索引数据透视生成重排分级次序根据级别汇总统计列索引转为行索引读取文件导出文件数据库风格的...值得一提的是,pandas能够轻松完成SQL、MySQL等数据库中的对数据库的查找或表连接等功能,对于大量数据,只需耐心花些时间完成上传数据工作,其后的数据处理速度完全不亚于数据库的处理速度,而且能够实现更高的灵活性...,DataFrame对象中的索引会被丢弃掉 pd.merge(left,right,on='key1') #suffixes附加到左右两个DataFrame对象的重叠列名上的字符串 pd.merge(left...left,right,on='key1',suffixes=('_left','_right')) #how默认为innner,可选inner,outer,left,right #有时候DataFrame中的连接键位于其索引中...left2.join(right2,how='outer') #join方法也支持DataFrame的索引跟调用者DataFrame某个列之间的连接 left1.join(right1,on='key
(df) 两个方法的输出结果都一样。...03 横向连接 Pandas提供了merge方法来完成各种表的横向连接操作。其中包括内连接、外连接。 内连接,根据公共字段保留两表共有的信息。...外连接包括左连接、右连接、全连接。 哪边连接,哪边的信息全保留,另一边的缺失信息会以NaN补全。 how的参数值分别为left、right、outer。...05 排序 Pandas的排序方法有以下三种。 sort_values、sort_index、sortlevel。 第一个表示按值排序,第二个表示按索引排序,第三个表示按级别排序。...(['gender', 'date'])['age', 'praise'].agg(['mean', 'max', 'min', 'count'])) 输出结果,这里只展示计数的结果,也是平常用的比较多的
堆叠中的参数是其级别。在列表索引中,索引为-1将返回最后一个元素。这与水平相同。级别-1表示将取消堆叠最后一个索引级别(最右边的一个)。...作为另一个示例,当级别设置为0(第一个索引级别)时,其中的值将成为列,而随后的索引级别(第二个索引级别)将成为转换后的DataFrame的索引。 ?...想象一下,每一列都是高速公路上的一条车道。为了合并,它们必须水平合并。 Join 通常,联接比合并更可取,因为它具有更简洁的语法,并且在水平连接两个DataFrame时具有更大的可能性。...连接的语法如下: ? 使用联接时,公共键列(类似于 合并中的right_on 和 left_on)必须命名为相同的名称。...how参数是一个字符串,它表示四种连接 方法之一, 可以合并两个DataFrame: ' left ':包括df1的所有元素, 仅当其键为df1的键时才 包含df2的元素 。
’)[‘id’].count() 按城市对id字段进行计数 df_inner.groupby([‘city’,‘size’])[‘id’].count() 对两个字段进行汇总计数 df_inner.groupby...df_inner[‘price’].std() 计算列的标准差 df_inner[‘price’].cov(df_inner[‘m-point’]) 计算两个字段间的协方差 df_inner.cov(...df_inner=pd.merge(df,df1,how=‘inner’) 内连接(取两个集合的交集) df_left=pd.merge(df,df1,how=‘left’) 左连接(以 df 为基准,...df1 在 df 中无匹配则为空) df_right=pd.merge(df,df1,how=‘right’) 右连接(以 df1 为基准,df 在 df1 中无匹配则为空) df_outer=pd.merge...(df,df1,how=‘outer’) 全连接(取两个集合的并集,包含有 df , df1 的全部数据行,无匹配则填充空) 修改列名 代码 作用 a.columns = [‘a’,‘b’,‘c’]
Pandas merge用法解析(用Excel的数据为例子) 【知识点】 语法: 参数如下: left: 拼接的左侧DataFrame对象 right: 拼接的右侧DataFrame对象 on: 要加入的列或索引级别名称...如果未传递且left_index和right_index为False,则DataFrame中的列的交集将被推断为连接键。 left_on:左侧DataFrame中的列或索引级别用作键。...可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。 right_on: 左侧DataFrame中的列或索引级别用作键。...可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。 left_index: 如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键。...对于具有MultiIndex(分层)的DataFrame,级别数必须与右侧DataFrame中的连接键数相匹配。 right_index: 与left_index功能相似。
不过,因为equals()和==的内部判断是有差异的,所以equals()与np.all(df1==df2)并不完全等价,可以继续看下面的介绍。...二、索引值对结果的影响不同 equals()比较两个DataFrame或Series,索引值相等的列或行可以进行比较,如索引1和1.0分别是整数和浮点数,但值是相等的,对应的行或列可以进行比较。...具体来说,两个np.NaN,两个None,两个pd.NaT,np.NaN与None这四种情况的比较结果都是相等的。而pd.NaT与np.NaN和None的比较结果为不相等。...==比较时,空值的比较结果都是不相等。 从Python解释器层面来判断,两个np.NaN和两个pd.NaT的比较结果都不相等,所以用==比较时,DataFrame中对应位置的结果为False。...这也是前面说equals()与np.all(df1==df2)不完全等价的原因。 在判断两个DataFrame或Series是否等效时,空值对我们来说都是一样的。
df.info():提供数据摘要,包括索引数据类型,列数据类型,非空值和内存使用情况。 df.describe():提供描述性统计数据。...df['Contour'].isnull().sum():返回'Contour'列中的空值计数 df['pH'].notnull().sum():返回“pH”列中非空值的计数 df['Depth']....unique():返回'Depth'列中的唯一值 df.columns:返回所有列的名称 选择数据 列选择:如果只想选择一列,可以使用df['Group']....下面的示例按“Contour”列对数据进行分组,并计算“Ca”列中记录的平均值,总和或计数。...按列连接数据 pd.concat([df, df2], axis=1) 按行连接数据 pd.concat([df, df2], axis=0) 当您的数据帧之间有公共列时,合并适用于组合数据帧。
数据 为了说明这是如何工作的,让我们假设我们有一个简单的数据集,它有一个datetime列和几个其他分类列。您感兴趣的是某一列(“类型”)在一段时间内(“日期”)的汇总计数。...但是,在同一x轴(时间)上具有两个或更多数据计数的Plotly呢? 为了解决上面的问题,我们就需要从Plotly Express切换到Plotly Graph Objects。...代替由点按时间顺序连接的点,我们有了某种奇怪的“ z”符号。 运行中的go.Scatter()图,但未达到预期。点的连接顺序错误。下面图形是按日期对值进行排序后的相同数据。...在本节中,让我们切换到一个样本数据集,该数据集有几百条记录和两个类别(a、b),它们跨越了几年时间。...这一次,请注意我们如何在groupby方法中包含types列,然后将types指定为要计数的列。 在一个列中,用分类聚合计数将dataframe分组。
详见代码: 均值和标准差 我们通过 describe 方法查看的统计信息中均值和方差都是按照列统计呢,这里要说的,既可以按照列,还可以按照行 均值,行 df.mean(axis=0),列df.mean(...axis=1) 方差,行 df.std(axis=0),列df.std(axis=1) DataFrame 转换为 Numpy DataFrame 合并 连接合并 在两个 df 的结果一致的情况下,我们可以简单两个...SQL 一样的连接,内联,外联,左联,右联 作为我们的示例数据,可以唯一标识一行的就是 Datatime 列 merged_df = df_1.merge(df_2, how='left', on='...datetime') 在 DataFrame 中查找 NaN 每行有多少 NaN,df.isnull().sum() Dataframe 中 NaN 的总数,上面统计出来的数量求和,df.isnull(...特别是统计数量、计算和、求平均值,等等。
中的连接操作是一致的。...内连接得到两个对象中都有的数据,对象A中a列和对象B中的a列都有1。左连接以对象A的a列为准,对象B中a列中没有的值,则取空。右连接则以对象B的a列为准。外连接则查询出全部的数据。...同样除了连接操作还有聚合操作,与SQL中的使用groupby对列进行聚合操作一样。...可以直观的看出,count()按照a列的值计数,值为1的有2个,值为2,3的有1个。Sum()操作在实际应用场景中通过会用于按照月份或者年度统计销售额等等。...--按照a列统计计数 Select a, count(a) from A group by a ; --按照a列统计计数 Select a, sum(b) from A group by a ;
loc 用法(Dataframe): loc([这里是行标识], [这里是列标识]) 示例: data.loc[:,'列一'] #取出所有行第一列,loc可以理解为传入两个参数一个是关于行的,一个是关于列的...需要注意的是,在访问dataframe时,访问df中某一个具体元素时需要先传入行表索引再确定列索引。 2....[:, "ix"] = nval # 传入行列索引信息,确定新列标签名 # 添加新行 df.append(df2) # 添加新行,使用append 方法即可 # concat 多列连接 # concat...多行连接 与多列连接的方式仅在于axis 参数指定,axis=0按行操作即多行连接,否则按列连接 # 删除一列,在原有的dataframe上进行操作 del df['日期'] 或是使用 pop 方法...2. add() 和 append() 方法 add 类似+ 运算,将两个series 相加得到结果,append 则是将一个series 连接在前一个series的后面,类似列表的相加。
df2 = df2.unstack(level=2) df2 小结: (1)stack是把列索引变成行索引,unstack是把行索引变成列索引,默认都是改变最低级的索引;如果需要要修改其他级别的索引...df2.reindex(columns=[('富强','数学'),('李海','英语'),('王亮','数学'),('富强','语文')]) 二、数据透视表 数据透视表相当于在行和列两个维度上进行分组...columns:要在列上进行分组的序列、数组或DataFrame列。 values:可选参数,要聚合的值列。如果未指定,则将计算所有剩余列的计数/频率。...rownames:可选参数,用于设置结果中行的名称。 colnames:可选参数,用于设置结果中列的名称。 aggfunc:可选参数,用于聚合值的函数,默认为计数。...如果为’all’,则在每个索引/列组中返回全局相对频率。
默认值是 True 列中的每行上的 apply 函数 在前一篇的增加列的部分,根据风速计算人体感觉是否舒适,为了功能的演示,在这里使用 DataFrame 的 apply 方法,他会在指定列的每个值上执行...详见代码: image.png 均值和标准差 我们通过 describe 方法查看的统计信息中均值和方差都是按照列统计呢,这里要说的,既可以按照列,还可以按照行 均值,行 df.mean(axis=0)...,列df.mean(axis=1) 方差,行 df.std(axis=0),列df.std(axis=1) DataFrame 转换为 Numpy image.png DataFrame 合并 连接合并...在两个 df 的结果一致的情况下,我们可以简单两个 df 拼接起来 垂直(行)拼接,pd.concat([df1,df2],axis=0),水平(列)拼接,pd.concat([df1,df2],axis...=1) 基于索引关键字合并 Pandas 还提供了像 SQL 一样的连接,内联,外联,左联,右联 作为我们的示例数据,可以唯一标识一行的就是 Datatime 列 merged_df = df_1.merge
领取专属 10元无门槛券
手把手带您无忧上云