我正在使用Pandas数据帧来读取excel文件并对其进行一些操作。我有一个包含多行的标题,现在我想按几个列值进行分组。但是,我无法找到解决方案。
示例Excel
name address contact_info
first_name last_name street city mobile email
1 AAA BBB XXX YYY 102020 aaa@xyz.com
2 111 222 333 444 239393 bbb@xyz.com
3 BBB 333 XXX dddd 102020 aaa@xyz.com
我想通过stree名称进行分组,并从其他列中查找vaules 我尝试了这个,但它不能找到街道,因为它是多索引。
df = pd.read_excel("test.xlsx", header=[0, 1], sheet_name="Sheet1")
print df.groupby("street", level=-1)[["first_name", "last_name", "email"]].apply(list)
答案 0 :(得分:0)
您需要在任何地方提供元组列表:
cols = [
('name', 'first_name'),
('name', 'last_name'),
('contact_info', 'email')
]
df.groupby([('address', 'street')])[cols].apply(pd.Series.tolist)
# or, alternatively,
# df.groupby(df.address.street)[cols].apply(pd.Series.tolist)
(address, street)
333 [[111, 222, bbb@xyz.com]]
XXX [[AAA, BBB, aaa@xyz.com], [BBB, 333, aaa@xyz.c...
元组指定MultiIndex
列选择。