Pandas 中as_indexgroupby的功能到底是什么?

最佳答案

当您不了解某事时,print()是您的 friend 。它消除了很多次怀疑。

看一看:

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()中使用的键将成为新数据框中的索引。

将列设置为索引时,将获得以下好处:
  • 速度。当您基于索引列过滤值时,例如df.loc['bk1'],因为索引列的散列会更快。不必遍历整个books列即可找到'bk1'。它将只计算'bk1'的哈希值并在1 go中找到它。
  • 轻松。当使用as_index=True时,您可以使用这种语法df.loc['bk1'],该语法更短,更快,而df.loc[df.books=='bk1']则更长,更慢。
  • 关于python - Pandas 在groupby中的as_index是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41236370/

    10-12 18:00