pandas 的 groupby 中的 as_index 是什么?

新手上路,请多包涵

as_indexgroupby 在熊猫中的功能到底是什么?

原文由 Haritha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 399
2 个回答

print() 是你什么都不懂的朋友。多次解疑。

看一看:

 import pandas as pd

df = pd.DataFrame(data={'books':['bk1','bk1','bk1','bk2','bk2','bk3'], 'price': [12,12,12,15,15,17]})

print(df)

print(df.groupby('books', as_index=True).sum())

print(df.groupby('books', as_index=False).sum())

输出:

   books  price
0   bk1     12
1   bk1     12
2   bk1     12
3   bk2     15
4   bk2     15
5   bk3     17

       price
books
bk1       36
bk2       30
bk3       17

  books  price
0   bk1     36
1   bk2     30
2   bk3     17

as_index=True 您在 groupby() 中使用的键将成为新数据帧中的索引。

将列设置为索引时获得的好处是:

  1. 速度。 当您根据索引列过滤值时,例如。 df.loc['bk1'] ,由于索引列的散列,它会更快。它不必遍历整个 books 列来查找 'bk1' 。它只会计算 'bk1' 的哈希值,并一次性找到它。

  2. 舒适。as_index=True 您可以使用此语法 df.loc['bk1'] 与 --- df.loc[df.books=='bk1'] --- 相比,它更短更快。

原文由 Mohammad Yusuf 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 group by 函数时,as_index 可以设置为 true 或 false,具体取决于您是否希望分组依据的列作为输出的索引。

 import pandas as pd
table_r = pd.DataFrame({
    'colors': ['orange', 'red', 'orange', 'red'],
    'price': [1000, 2000, 3000, 4000],
    'quantity': [500, 3000, 3000, 4000],
})
new_group = table_r.groupby('colors',as_index=True).count().sort('price', ascending=False)
print(new_group)

输出:

         price  quantity
colors
orange      2         2
red         2         2

现在 as_index=False

    colors  price  quantity
0  orange      2         2
1     red      2         2

请注意,当我们更改 as_index=False 时,颜色不再是索引

原文由 Marc vT 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏