我的任务是从这个页面https://www.ssa.gov/cgi-bin/popularnames.cgi抓取网页。在那里你可以找到最常见的出生名字列表。现在我必须找到一个女孩和男孩在某一年里最常用的名字(换句话说,男女都用完全相同的名字),但我不知道我怎么能做到这一点。使用下面的代码,我完成了上一个任务,输出给定年份的列表,但是我不知道如何修改代码,所以我得到了女孩和男孩都有的最常见的名字。你知道吗
import requests
import lxml.html as lh
url = 'https://www.ssa.gov/cgi-bin/popularnames.cgi'
string = input("Year: ")
r = requests.post(url, data=dict(year=string, top="1000", number="n" ))
doc = lh.fromstring(r.content)
tr_elements = doc.xpath('//table[2]//td[2]//tr')
cols = []
for col in tr_elements[0]:
name = col.text_content()
number = col.text_content()
cols.append((number, []))
count=0
for row in tr_elements[1:]:
i = 0
for col in row:
val = col.text_content()
cols[i][1].append(val)
i += 1
if(count<4):
print(val, end = ' ')
count += 1
else:
count=0
print(val)
这里有一种方法。第一步是按姓名对数据进行分组,并记录有多少性别使用了该姓名及其合计总数。在那之后,我们可以使用它按具有多个性别的名字过滤结构。最后,我们按计数对这个多性别列表进行排序,并取第0个元素。这是我们今年最流行的多性别名称。你知道吗
如果你好奇,以下是2000年以来的结果:
相关问题 更多 >
编程相关推荐