如何合并Pandas中的行而不删除其他列?

2024-06-26 11:11:41 发布

您现在位置:Python中文网/ 问答频道 /正文

This is how neigh looks like我有如下代码

import pandas as pd
import numpy as np
import requests
from bs4 import BeautifulSoup
res = requests.get("https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M")
soup = BeautifulSoup(res.content,'lxml')
table = soup.find_all('table')[0] 
dfwiki = pd.read_html(str(table))
neigh = dfwiki[0]
delete_row = neigh[neigh["Borough"]=="Not assigned"].index
neigh = neigh.drop(delete_row)
neigh

我想合并具有相同postcode值的neighbory列的行,但是当我使用下面的groupby代码时,不会显示Borough列

nbh = neigh.groupby('Postcode')['Neighbourhood'].agg(','.join)
nbh

我尝试过将Borough列放在上面的行中,但是它合并了所有类似的Borough列行,这是不需要的

nbh = neigh.groupby('Postcode')['Borough','Neighbourhood'].agg(','.join)
nbh

我想把邻里列合并起来,用逗号隔开,但是想让自治区列看起来一样,我怎么做到这一点

我希望它看起来像这样: I want the following output


Tags: of代码importastableresrequestspd
1条回答
网友
1楼 · 发布于 2024-06-26 11:11:41

您可以获取每个邮政编码的第一个值Borough

nbh = neigh.groupby('Postcode').agg({'Borough': 'first', 'Neighbourhood': ','.join})
print(nbh.head())
              Borough                         Neighbourhood
Postcode                                                   
M1B       Scarborough                         Rouge,Malvern
M1C       Scarborough  Highland Creek,Rouge Hill,Port Union
M1E       Scarborough       Guildwood,Morningside,West Hill
M1G       Scarborough                                Woburn
M1H       Scarborough                             Cedarbrae

相关问题 更多 >