微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 抓取表的所有列,但我只想查看其中一列

如何解决Python 抓取表的所有列,但我只想查看其中一列

我正在使用 Python 从 Ballotpedia (https://ballotpedia.org/List_of_current_members_of_the_U.S._Congress) 中抓取美国国会的名称。我当前的代码为我提供了两个表(参议院和众议院)中每一个的所有四列。这是我当前的代码

import requests
from bs4 import BeautifulSoup
import pandas as pd

list = ['https://ballotpedia.org/List_of_current_members_of_the_U.S._Congress']

all_tables = pd.read_html(list[0])
senators = all_tables[3]
house_members = all_tables[6]
congress = senators.append(house_members)

congress.to_csv('3-New Congressmen.csv')

显然,我一直在尝试使用第 7-10 行,但不喜欢只获取立法者姓名的方法。我只对姓名栏感兴趣。

是我忽略了 Ballotpedia 页面的检查功能错误吗?还是需要额外的一行代码来指定我想要的列?非常感谢您的帮助!

解决方法

要仅获取立法者的姓名,您可以:

import pandas as pd

url = "https://ballotpedia.org/List_of_current_members_of_the_U.S._Congress"

dfs = pd.read_html(url)

legislators_df = dfs[3]["Name"]
house_members = dfs[6]["Name"]


pd.concat([legislators_df,house_members]).to_csv("out.csv",index=False)

创建out.csv

0             Richard Shelby
1           Tommy Tuberville
2             Lisa Murkowski
3         Daniel S. Sullivan
4                 Mark Kelly
5             Kyrsten Sinema
6               John Boozman
7                 Tom Cotton
8           Dianne Feinstein
9               Alex Padilla
10            Michael Bennet
...

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。