小编use*_*658的帖子

如何打印groupby对象

我想用Pandas打印分组结果.

我有一个数据帧:

import pandas as pd
df = pd.DataFrame({'A': ['one', 'one', 'two', 'three', 'three', 'one'], 'B': range(6)})
print(df)

       A  B
0    one  0
1    one  1
2    two  2
3  three  3
4  three  4
5    one  5
Run Code Online (Sandbox Code Playgroud)

在按'A'分组后打印时,我有以下内容:

print(df.groupby('A'))

<pandas.core.groupby.DataFrameGroupBy object at 0x05416E90>
Run Code Online (Sandbox Code Playgroud)

如何打印分组的数据框?

如果我做:

print(df.groupby('A').head())
Run Code Online (Sandbox Code Playgroud)

我获取数据帧,好像它没有分组:

             A  B
A                
one   0    one  0
      1    one  1
two   2    two  2
three 3  three  3
      4  three  4
one   5    one  5
Run Code Online (Sandbox Code Playgroud)

我期待的是:

             A  B
A                
one   0    one …
Run Code Online (Sandbox Code Playgroud)

python pandas

101
推荐指数
10
解决办法
11万
查看次数

使用Pandas,如何删除每个组的最后一行?

我有一个数据帧,如下所示:

import pandas as pd
df = pd.DataFrame({'A': ['one', 'one', 'two', 'three', 'three', 'one'], 'B': range(6)})
grouped = df.groupby('A')
print grouped.head()

             A  B
A                
one   0    one  0
      1    one  1
      5    one  5
three 3  three  3
      4  three  4
two   2    two  2
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式轻松选择每个组的最后几行:

print(grouped.agg(lambda x: x.iloc[-1]))

      B
A       
one    5
three  4
two    2
Run Code Online (Sandbox Code Playgroud)

如何删除每个组的最后一行?结果将是:

       A  B
0    one  0
1    one  1
3  three  3
Run Code Online (Sandbox Code Playgroud)

我尝试过滤但似乎没有做任何事情:

print grouped.filter(lambda x: x.iloc[-1])

       A  B
0    one  0
1 …
Run Code Online (Sandbox Code Playgroud)

python pandas

10
推荐指数
2
解决办法
3842
查看次数

标签 统计

pandas ×2

python ×2