Python 合并数据帧groupby并合并多个行值
如果标题不清楚,我很抱歉,但我很难用措辞回答这个问题。如果我只是展示我想做的事情,那可能是最好的 一些上下文:我解析了一个文档的名称,并将每个名称与出现的页码一起存储。我需要转换数据框,以便每个名称都有一行。页码列将显示名称的所有页面合并在一起。我想这需要GroupBy,但我不能完全确定 我目前的数据:Python 合并数据帧groupby并合并多个行值,python,pandas,Python,Pandas,如果标题不清楚,我很抱歉,但我很难用措辞回答这个问题。如果我只是展示我想做的事情,那可能是最好的 一些上下文:我解析了一个文档的名称,并将每个名称与出现的页码一起存储。我需要转换数据框,以便每个名称都有一行。页码列将显示名称的所有页面合并在一起。我想这需要GroupBy,但我不能完全确定 我目前的数据: data = np.array([['John', 'Smith', 1], ['John', 'Smith', 7], ['Eric', 'Adams', 9], ['Jane', 'Doe'
data = np.array([['John', 'Smith', 1], ['John', 'Smith', 7], ['Eric', 'Adams', 9], ['Jane', 'Doe', 14], ['Jane', 'Doe', 16], ['John', 'Smith', 19]])
pd.DataFrame(data, columns=['FIRST_NM', 'LAST_NM', 'PAGE_NUM'])
FIRST_NM LAST_NM PAGE_NUM
0 John Smith 1
1 John Smith 7
2 Eric Adams 9
3 Jane Doe 14
4 Jane Doe 16
5 John Smith 19
所需数据帧:
FIRST_NM LAST_NM PAGE_NUM
0 John Smith 1,7,19
1 Eric Adams 9
2 Jane Doe 14,16
您可以使用groupby执行此操作并应用:
df.groupby(['FIRST_NM', 'LAST_NM']).apply(lambda group: ','.join(group['PAGE_NUM']))
Out[23]:
FIRST_NM LAST_NM
Eric Adams 9
Jane Doe 14,16
John Smith 1,7,19
dtype: object
所需数据框中的
PAGE_NUM
是否为字符串?