Python 对重复项进行分组并通过Pandas组合字符串列

Python 对重复项进行分组并通过Pandas组合字符串列,python,pandas,group-by,Python,Pandas,Group By,假设我有一个名为示例的数据帧: city state school_lvl schl_name elem_name middle_name highschoo_name Orlando fl 1 Union Park Union Park Orlando fl 2 Legacy Legacy Orlando fl 3 Col

假设我有一个名为
示例
的数据帧:

city    state  school_lvl    schl_name     elem_name   middle_name   highschoo_name
Orlando  fl        1         Union Park    Union Park
Orlando  fl        2         Legacy                      Legacy
Orlando   fl       3         Colonial                                  Colonial
其中,
elem\u name
等列是使用
school\u lvl
schl\u name
上的if条件生成的

我想要的是

city    state  elem_name   middle_name   highschoo_name
Orlando  fl   Union Park    Legacy        Colonial
我该怎么做呢?因为没有聚合函数,所以它不是真正的群组?我非常感谢您对lambda函数的任何帮助

用于向前和向后填充,然后用于前2列和后3列:

c = example.columns[:2].tolist() + example.columns[-3:].tolist()
print (c)
['city', 'state', 'elem_name', 'middle_name', 'highschoo_name']

df = example.groupby(['city', 'state']).apply(lambda x: x.ffill().bfill()).drop_duplicates(c)
print (df)
      city state  school_lvl   schl_name   elem_name middle_name  \
0  Orlando    fl           1  Union Park  Union Park      Legacy   

  highschoo_name  
0       Colonial 
如果要删除列,请先使用Simpler,然后按所有列删除重复项:

example = example.drop(['school_lvl','schl_name'], axis=1)
df = example.groupby(['city', 'state']).apply(lambda x: x.ffill().bfill()).drop_duplicates()
print (df)
      city state   elem_name middle_name highschoo_name
0  Orlando    fl  Union Park      Legacy       Colonial

@斯科特伯顿-是的,我添加了链接。好主意。首先感谢您的回复。不幸的是,第一个代码删除了除第一个和第二个代码之外的所有行,使数据帧保持不变。我已经用更多信息更新了这个问题,不幸的是,我遇到了以下错误
AttributeError:“list”对象没有属性“columns”