使用pandas groupby功能,如何查询数据子集并将其放入列表

时间:2018-11-27 18:15:49

标签: python-3.x pandas pandas-groupby

使用python 3.7和panadas,询问属于“ building x”的所有帐户的正确方法是什么?

Excel数据

Building    Account Sales rep
23          1234567       Bob
24          7654231     Steve
25           12ae23       Bob
23           A11111      Jeff
26           A22222      Jeff
26           A33333       Bob
            A444448      Mike

这是我正在尝试的代码

Import pandas as pd
table_data  = pd.read_excel(‘excel.xlsx', sheet_name='Sheet1', dtype=str)
buildings = table_data[‘Building’].tolist()
accounts = table-data[‘Account’].tolist()

grouped_by_building = table_data.groupby("Building")[["Building", "Account", "Sales rep"]]
for item, group in grouped_by_building:
    print(item, group)

我想查询并得出属于建筑物26的所有帐户的结果。

输出

Building_26_list = [‘A22222’, ‘A33333’]
Building_23_list = [‘1234567’, ‘A11111’]

我在弄清楚如何仅查询要迭代的建筑物时遇到了麻烦。

1 个答案:

答案 0 :(得分:0)

您只需要访问GroupBy对象的groups属性。 其操作如下:

grouped_by_building = table_data.groupby("Building").groups
for item, group in grouped_by_building.items():
    print(item, group)

看起来您使用.items()函数来获取字典{item:[...,...]}作为元组[[item,[...,...])的列表, ...]