python-3.x 仅打印特定组的groupby对象

kqlmhetl  于 2023-01-14  发布在  Python
关注(0)|答案(2)|浏览(107)

我需要在Python中打印groupby对象的结果,仅用于特定的一个或多个组。
以下是 Dataframe :

import pandas as pd
df = pd.DataFrame({'ID'    : [1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4],
                   'Entry' : [1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6]})
print("\n df = \n",df)

为了按ID对数据文件名进行分组并打印结果,我使用了以下代码:

grouped_by_unit = df.groupby(by="ID")
print("\n", grouped_by_unit.apply(print))

有人能告诉我以下两件事吗?
1.如何打印仅按'ID=1'分组的数据框?我需要获得以下输出:

1.同样,如何打印按'ID=1'和'ID=4'分组的数据框?我需要得到以下输出:

6l7fqoea

6l7fqoea1#

您可以使用for循环等方法迭代这些组:

grouped_by_unit = df.groupby(by="ID")

for id_, g in grouped_by_unit:
    if id_ == 1 or id_ == 4:
        print(g)
        print()

图纸:

ID  Entry
0   1      1
1   1      2
2   1      3
3   1      4

    ID  Entry
12   4      1
13   4      2
14   4      3
15   4      4
16   4      5
17   4      6
vfwfrxfs

vfwfrxfs2#

您可以使用get_group函数:

df.groupby(by="ID").get_group(1)

其打印

ID  Entry
0   1   1
1   1   2
2   1   3
3   1   4

您可以使用相同的方法打印键4的组。

相关问题