首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pandas:由列层次化索引延伸的一些思考

删除列层次化索引 用pandas利用df.groupby.agg() 做聚合运算时遇到一个问题:产生了列方向上的两级索引,且需要删除一级索引。...删除列的层次化索引操作如下: # 列的层次化索引的删除 levels = action_info.columns.levels labels = action_info.columns.labels print...事实上,如果值是一维数组,在利用完特定的函数之后,能做到简化的话,agg就能调用,反之,如果比如自定义的函数是排序,或者是一些些更复杂统计的函数,当然是agg所不能解决的,这时候用apply就可以解决。...例子:根据 student_action表,统计每个学生每天最高使用次数的终端、最低使用次数的终端以及最高使用次数终端的使用次数、最低使用次数终端的使用次数。...总结 列层次索引的删除 列表的模糊查找方式 查找dict的value值最大的key 的方式 当做简单的聚合操作(max,min,unique等),可以使用agg(),在做复杂的聚合操作时,一定使用apply

88330

盘点一个Pandas提取Excel列包含特定关键词的行(下篇)

一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据提取的问题,上一篇中已经给出了代码,粉丝自己可能还没有领悟明白,一用就废,遇到了问题。...他的代码照片如下图: 这个代码这么写,最后压根儿就没有得到他自己预期的结果,遂来求助。这里又回归到了他自己最开始的需求澄清!!!论需求表达清晰的重要性!...Series来索引DataFrame result = df[mask] 你已经这就顺利地解决了粉丝的问题了?...能给你做出来,先实现就不错了,再想着优化的事呗。 后来【莫生气】给了一个正则表达式的写法,总算是贴合了这个粉丝的需求。 如果要结合pandas的话,可以写为下图的代码: 至此,粉丝不再修改需求。...这篇文章主要盘点了一个Pandas数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。 最后感谢粉丝【上海新年人】提出的问题,感谢【鶏啊鶏。】

33110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    盘点一个Pandas提取Excel列包含特定关键词的行(上篇)

    一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据提取的问题,问题如下:大佬们,请教个小问题,我要查找某列中具体的值,譬如df[df['作者'] == 'abc'],但实际上这样子我找不到...ABC,因为对方实际是小写的abc。...再次反应是加个或进行处理,也可以用如下代码: # 创建布尔Series mask = df['作者'].isin(['ABC', 'abc']) # 使用布尔Series来索引DataFrame result...但是粉丝的需求又发生了改变,下一篇文章我们一起来看看这个“善变”的粉丝提问。 三、总结 大家好,我是皮皮。...这篇文章主要盘点了一个Pandas数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

    32310

    盘点一个Pandas提取Excel列包含特定关键词的行(中篇)

    一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据提取的问题,但是粉丝又改需求了,需求改来改去的,就是没个定数。 这里他的最新需求,如上图所示。...他的意思在这里就是要上图中最下面这3个。 二、实现过程 后来【论草莓如何成为冻干莓】给了一份代码,如下图所示: 顺利地解决了粉丝的问题。...可以看到,代码刚给出来,但是粉丝的需求又发生了改变,不过不慌,这里又给出了对应代码,如下图所示: 一看就会,一用就废,粉丝自己刚上手,套用到自己的数据里边,代码就失灵了。...下一篇文章,我们再来看这位粉丝新遇到的问题。 三、总结 大家好,我是皮皮。这篇文章主要盘点了一个Pandas数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【上海新年人】提出的问题,感谢【鶏啊鶏。】、【论草莓如何成为冻干莓】给出的思路,感谢【莫生气】等人参与学习交流。

    22010

    《Python for Excel》读书笔记连载11:使用pandas进行数据分析之组合数据

    进行数据分析之核心数据结构——数据框架和系列 10.使用pandas进行数据分析之数据操作 组合数据框架 在Excel中组合不同的数据集可能是一项繁琐的任务,通常涉及许多VLOOKUP公式。...在下面的示例中,创建了另一个数据框架more_users,并将其附加到示例数据框架df的底部: 注意,现在有了重复的索引元素,因为concat将数据粘在指定的轴(行)上,并且只对齐另一个轴(列)上的数据...联接(joining)和合并(merging) 当联接(join)两个数据框架时,可以将每个数据框架的列组合成一个新的数据框架,同时依靠集理论来决定行的情况。...图5-3.联接类型 使用join,pandas使用两个数据框架的索引来对齐行。内联接(innerjoin)返回的数据框架只包含索引重叠的行。...左联接(leftjoin)获取左数据框架df1中的所有行,并在索引上匹配右数据框架df2中的行,在df2没有匹配行的地方,pandas将填充NaN。左联接对应于Excel中的VLOOKUP情况。

    2.5K20

    直观地解释和可视化每个复杂的DataFrame操作

    原始DataFrame的状态围绕DataFrame的中心元素旋转到一个新元素。有些元素实际上是在旋转或变换的(例如,列“ bar ”),因此很重要。...为了访问狗的身高值,只需两次调用基于索引的检索,例如 df.loc ['dog']。loc ['height']。 要记住:从外观上看,堆栈采用表的二维性并将列堆栈为多级索引。...想象一下,每一列都是高速公路上的一条车道。为了合并,它们必须水平合并。 Join 通常,联接比合并更可取,因为它具有更简洁的语法,并且在水平连接两个DataFrame时具有更大的可能性。...尽管可以通过将axis参数设置为1来使用concat进行列式联接,但是使用联接 会更容易。 请注意,concat是pandas函数,而不是DataFrame之一。...串联是将附加元素附加到现有主体上,而不是添加新信息(就像逐列联接一样)。由于每个索引/行都是一个单独的项目,因此串联将其他项目添加到DataFrame中,这可以看作是行的列表。

    13.3K20

    panda python_12个很棒的Pandas和NumPy函数,让分析事半功倍

    参考链接: Python | 使用Panda合并,联接和连接DataFrame 本文转载自公众号“读芯术”(ID:AI_Discovery)  大家都知道Pandas和NumPy函数很棒,它们在日常分析中起着重要的作用...它返回在特定条件下值的索引位置。这差不多类似于在SQL中使用的where语句。请看以下示例中的演示。  ...具有行和列标签的任意矩阵数据(同类型或异类)  观察/统计数据集的任何其他形式。实际上,数据根本不需要标记,即可放入Pandas数据结构。  ...以下是Pandas的优势:  轻松处理浮点数据和非浮点数据中的缺失数据(表示为NaN)  大小可变性:可以从DataFrame和更高维的对象中插入和删除列  自动和显式的数据对齐:在计算中,可以将对象显式对齐到一组标签...、索引不同的数据转换为DataFrame对象  大数据集的智能标签的切片,高级索引和子集化  直观的合并和联接数据集  数据集的灵活重塑和旋  坐标轴的分层标签(每个刻度可能有多个标签)  强大的IO工具

    5.1K00

    通过 JS 实现简单的拖拽功能并且可以在特定元素上禁止拖拽

    前言 关于讲解 JS 的拖拽功能的文章数不胜数,我确实没有必要大费周章再写一篇重复的文章来吸引眼球。本文的重点是讲解如何在某些特定的元素上禁止拖拽。...排除特定元素的方法 关于如何排除特定元素的方法,很多人会推荐阻止冒泡的方法,但是我试了很多次,这种方法是不行的,因为拖拽事件绑定在了 document 对象上。...解决的方法就是在拖拽开始时添加限制条件,代码如下 ......因为我们在排除特定元素的同时也要排除它的子元素。如果使用原生 JS 的话,需要添加获取子元素的方法。...仍然是之前的老话,实现一个功能并不困难,但是如果要把这个功能做好,我们需要考虑很多的细节,或许很多时候我们都把时间花费在调整细节上了。

    4.9K90

    数据分析之Pandas VS SQL!

    SQL VS Pandas SELECT(数据选择) 在SQL中,选择是使用逗号分隔的列列表(或*来选择所有列): ? 在Pandas中,选择不但可根据列名称选取,还可以根据列所在的位置选取。...相关语法如下: loc,基于列label,可选取特定行(根据行index) iloc,基于行/列的位置 ix,为loc与iloc的混合体,既支持label也支持position at,根据指定行index...WHERE(数据过滤) 在SQL中,过滤是通过WHERE子句完成的: ? 在pandas中,Dataframe可以通过多种方式进行过滤,最直观的是使用布尔索引: ?...在where字句中搭配NOT NULL可以获得某个列不为空的项,Pandas中也有对应的实现: SQL: ? Pandas: ? DISTINCT(数据去重) SQL: ? Pandas: ?...默认情况下,join()将联接其索引上的DataFrames。 每个方法都有参数,允许指定要执行的连接类型(LEFT, RIGHT, INNER, FULL)或要连接的列(列名或索引) ?

    3.2K20

    在 Linux 上为特定的用户或用户组启用或禁用 SSH

    Secure Shell(ssh)是一个自由开源的网络工具,它能让我们在一个不安全的网络中通过使用 Secure Shell(SSH)协议来安全访问远程主机。...通过以下内容,我们可以为指定的用户或用户列表启用 ssh 访问。如果你想要允许多个用户,那么你可以在添加用户时在同一行中用空格来隔开他们。...通过以下内容,我们可以配置指定的用户或用户列表禁用 ssh。如果你想要禁用多个用户,那么你可以在添加用户时在同一行中用空格来隔开他们。...是的,这里 user1 用户在禁用名单中。所以,当你尝试登录时,你将会得到如下所示的错误信息。...通过以下内容,我们可以允许一个指定的组或多个组使用 ssh。 如果你想要允许多个组使用 ssh 那么你在添加用户组时需要在同一行中使用空格来隔开他们。

    2.6K60

    对比MySQL,学会在Pandas中实现SQL的常用操作

    在SQL中,您可以添加一个计算列: SELECT *, "小费"/"总费用" as "小费占比" FROM df LIMIT 5; 对于pandas,可以使用DataFrame.assign()的方法追加新列...4.group by分组统计 在Pandas中,SQL的GROUP BY操作是使用类似命名的groupby()方法执行的。...注意,在pandas代码中我们使用了size()而不是count()。这是因为count()将函数应用于每一列,并返回每一列中的记录数。...例如,假设我们要查看小费金额在一周中的各个天之间有何不同--->agg()允许您将字典传递给分组的DataFrame,从而指示要应用于特定列的函数。...默认情况下,join()将在其索引上联接DataFrame。每个方法都有参数,可让您指定要执行的联接类型(LEFT,RIGHT,INNER,FULL)或要联接的列(列名或索引)。

    2.5K20

    合并Pandas的DataFrame方法汇总

    如果有两个DataFrame没有相同名称的列,可以使用left_on='left_column_name'和right_on='right_column_name'显式地指定两个DataFrames上的键...df1中都有一个值,所以在本例中,right联接类似于inner联接。...在上面的示例中,还设置了参数 indicator为True,以便Pandas在DataFrame的末尾添加一个额外的_merge 列。...如果不想显示该列,可以将user_id 列设置为两列上的索引,以便在联接时不带后缀: df_join_no_duplicates = df1.set_index('user_id').join(df2....如果设置为 True ,它将忽略原始值并按顺序重新创建索引值 keys:用于设置多级索引,可以将它看作附加在DataFrame左外侧的索引的另一个层级的索引,它可以帮助我们在值不唯一时区分索引 用与 df2

    5.7K10

    2020年入门数据分析选择Python还是SQL?七个常用操作对比!

    在pandas中也有类似的操作 ? 查找空值 在pandas检查空值是使用notna()和isna()方法完成的。...在pandas中的等价操作为 ? 注意,在上面代码中,我们使用size()而不是count() 这是因为count()将函数应用于每一列,并返回每一列中非空记录的数量!...六、连接 在pandas可以使用join()或merge()进行连接,每种方法都有参数,可让指定要执行的联接类型(LEFT,RIGHT,INNER,FULL)或要联接的列。...pd.DataFrame({'key': ['B', 'D', 'D', 'E'], ....: 'value': np.random.randn(4)}) 内连接 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行...merge()提供了一些参数,可以将一个DataFrame的列与另一个DataFrame的索引连接在一起? ?

    3.6K31

    【DB笔试面试560】在Oracle中,虚拟列索引(Virtual Column Indexes)的作用是什么?

    ♣ 答案部分 在Oracle 11g之前的版本中,如果需要使用表达式或者一些计算公式,那么需要创建数据库视图;如果需要在这个视图上使用索引,那么会在表上创建基于函数的索引。...② 可以为虚拟列创建索引,称为虚拟列索引(实际上,Oracle为其创建的是函数索引),不能显式地为虚拟列创建函数索引。...③ 可以通过视图DBA_TAB_COLS的DATA_DEFAULT列来查询虚拟列的表达式,当创建了虚拟列索引(其实是一种函数索引)后,在视图DBA_IND_EXPRESSIONS中不能查询索引列。...⑦ 可以在虚拟列上创建约束(例如主键)。 ⑧ 只能在堆组织表(Heap-Organized Table,普通表)上创建虚拟列,不能在索引组织表、外部表、临时表上创建虚拟列。...其物理索引不需要使用传统的索引结构,可以存储为Oracle数据库表,或外部文件。应用程序域索引是一个特定于应用程序的自定义索引。

    1.3K20

    合并列,在【转换】和【添加列】菜单中的功能竟有本质上的差别!

    有很多功能,同时在【转换】和【添加】两个菜单中都存在,而且,通常来说,它们得到的结果列是一样的,只是在【转换】菜单中的功能会将原有列直接“转换”为新的列,原有列消失;而在【添加】菜单中的功能,则是在保留原有列的基础上...,“添加”一个新的列。...但是,最近竟然发现,“合并列”的功能,虽然在大多数情况下,两种操作得到的结果一致,但是他们却是有本质差别的,而且一旦存在空值(null)的情况,得到的结果将有很大差别。...比如下面这份数据: 将“产品1~产品4”合并到一起,通过添加列的方式实现: 结果如下,其中的空值直接被忽略掉了: 而通过转换合并列的方式: 结果如下,空的内容并没有被忽略,所以中间看到很多个连续分号的存在...我们看一下生成的步骤公式就清楚了! 原来,添加列里使用的内容合并函数是:Text.Combine,而转换里使用的内容合并函数是:Combiner.CombineTextByDelimiter。

    2.6K30

    5个例子介绍Pandas的merge并对比SQL中join

    本文的重点是在合并和连接操作方面比较Pandas和SQL。Pandas是一个用于Python的数据分析和操作库。SQL是一种用于管理关系数据库中的数据的编程语言。...这些操作非常有用,特别是当我们在表的不同数据中具有共同的数据列(即数据点)时。 ? pandas的merge图解 我创建了两个简单的dataframe和表,通过示例来说明合并和连接。 ?...“cust”包含5个客户的3条信息。列是id、年龄和类别。 ? “purc”包含客户id、机票号码和购买金额。 id是共同列的列,所以我们将在合并或联接时使用它。...因此,最好检查特定RDBMS的文档,看看它是否支持完整的外部连接。...这类似于Pandas的concat功能。 示例4 合并或联接不仅仅是合并数据。我们可以把它们作为数据分析的工具。例如,我们可以计算每个类别(“ctg”)的总订单金额。

    2K10
    领券