gpt4 book ai didi

python - pandas groupby 中 "as_index = False"和 "reset_index()"之间的区别

转载 作者:太空狗 更新时间:2023-10-30 02:24:45 26 4
gpt4 key购买 nike

我只是想知道这两个执行的功能有什么区别。

数据:

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=假:

df_group1 = df.groupby("ID").sum().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:您想要在两个轴上对一组中的三个变量(即列)的值求和。

使用 as_index=True 允许您在 axis=1 上应用求和而不指定列的名称,然后在轴 0 上求和值。当操作完成后,您可以使用 reset_index(drop=True/False) 获取正确形式下的 dataframe。

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

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

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

关于python - pandas groupby 中 "as_index = False"和 "reset_index()"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51866908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com