我想用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) 我有一个数据帧,如下所示:
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)