Python 熊猫群比中的as_指数是多少?

Python 熊猫群比中的as_指数是多少?,python,pandas,Python,Pandas,熊猫中的groupby中的as\u index的功能到底是什么?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

熊猫中的groupby中的
as\u index
的功能到底是什么?

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

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

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

  • 放松。当
    as_index=True
    时,您可以使用此语法
    df.loc['bk1']
    df.loc[df.books=='bk1']
    更短更快


  • 使用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
    

    请注意,当我们更改为_index=False时,颜色不再是索引,非常感谢。“我对打印一窍不通,”哈里莎说,“这是编程的一般规则<代码>打印所有引起怀疑的内容。在编程的早期,
    print
    语句被插入到程序的任何地方以调试erros。如果你认为我已经回答了你的问题,那么你可以通过点击复选标记来接受它。✔' 答案左侧两个三角形下方。除了易于选择之外,
    df.loc['bk1']
    也比布尔索引快。@ayhan-yes。索引时,它不必遍历整个books列来查找
    'bk1'
    。它将只计算'bk1'的散列值,并在1次遍历中找到它。谢谢你提出这一点。
       colors  price  quantity
    0  orange      2         2
    1     red      2         2