[英]Pandas dataframe groupby and combine multiple row values
如果標題不清楚,我深表歉意,但我很難表達這個問題。 如果我只是展示我想做的事情,那可能是最好的。
一些上下文:我解析了一個文檔的名稱,並將每個名稱與它出現的頁碼一起存儲。 我需要轉換 DataFrame 以便每個名稱都有一行,頁碼列組合了名稱出現的所有頁面。 我認為這需要 GroupBy,但我不完全確定。
我目前的數據:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.