当前位置: 首页 > 面试题库 >

Pandas groupby中“ as_index = False”和“ reset_index()”之间的区别

闾丘冠玉
2023-03-14
问题内容

我只是想知道这两个执行的功能有什么不同?

数据:

import pandas as pd
df = pd.DataFrame({"ID":["A","B","A","C","A","A","C","B"], "value":[1,2,4,3,6,7,3,4]})

as_index = False:

df_group1 = df.groupby("ID").sum().reset_index()

reset_index():

df_group2 = df.groupby("ID", as_index=False).sum()

他们两个都给出完全相同的输出。

  ID  value
0  A     18
1  B      6
2  C      6

谁能告诉我有什么区别,还可以举例说明吗?


问题答案:

使用时as_index=False,表示groupby()您不想将列ID设置为索引(duh!)。当两个实现产生相同的结果时,请使用,as_index=False因为这样可以节省一些键入时间和不必要的pandas操作;)

但是,有时您想对组应用更复杂的操作。在这些情况下,您可能会发现一个比另一个更适合。

例1: 您要对两个轴上的一组中三个变量(即列)的值求和。

使用Usingas_index=True可以在axis=1不指定列名的情况下应用求和,然后在轴0上求和。完成操作后,可以使用reset_index(drop=True/False)正确的格式获取数据框。

示例2: 您需要根据中的列为组设置一个值groupby()

设置as_index=False允许您检查公共列而不是索引的条件,这通常更容易。

在某些时候,KeyError对组应用操作时可能会遇到问题。在这种情况下,通常是因为您试图在聚合函数中使用一列,该列当前是GroupBy对象的索引。



 类似资料:
  • 问题内容: 这些通话实际上对会话意味着什么? 输出值 问题答案: 在服务方法内部,我们请求会话,并且所有事情都会自动获取,就像创建HttpSession对象一样。无需生成唯一的会话ID。无需创建新的Cookie对象。一切都会在后台自动发生。 调用请求对象的方法后,容器将立即创建会话的新对象,并生成一个唯一的会话ID来维护会话。该会话ID被传输回响应对象,以便每当客户端发出任何请求时,它也应将会话I

  • 问题内容: 编辑: 我在@ coldspeed,@ wen-ben,@ ALollz指出的字符串中犯的菜鸟错误。答案非常好,因此我不会删除此问题以保留这些答案。 原文: 我已经阅读了这个问题/答案groupby.first()和groupby.head(1)有什么区别? 该答案说明差异在于处理价值上。但是,当我打电话给时,他们俩都选择了。 此外,Pandas具有与和类似的功能,并且 有什么差异有?

  • 问题内容: if(strpos("http://www.example.com”,”http://www.")==0){ // do work} 我希望这能解决,但确实如此。但是当我这样做时会发生什么 这也传递到php 5上,因为据我所知,strpos返回false,它转换为0。 这是正确的思想/行为吗?如果是这样,在另一个字符串的开头测试该子字符串的解决方法是什么? 问题答案: 是的,这是正确的

  • 问题内容: 我有两个问题,可能需要一些帮助来理解它们。 和之间有什么区别?我知道这 意味着在单独的外壳中运行命令,然后将其传递给变量。有人可以帮助我理解这一点吗?如果我错了,请纠正我。 如果我们可以使用并且效果很好,那我为什么不能使用它呢?两者的执行周期有何不同? 问题答案: 语法是令牌级别的,因此美元符号的含义取决于其所在的令牌。表达式是现代代名词,代表命令替换;这意味着运行并将其输出放在此处。

  • 问题内容: 我对和感到困惑。我有两本PHP书。一个说它们是相同的,但是另一个说它们是不同的。我以为他们也一样。 他们不一样吗? 问题答案: 是按位与。请参见按位运算符。假设您这样做: 是逻辑AND。请参阅逻辑运算符。考虑一下这个真值表: