Python Pandas:.value_counts()仅对等于数据帧第一行的事件进行计数

Python Pandas:.value_counts()仅对等于数据帧第一行的事件进行计数,python,pandas,dataframe,web-scraping,Python,Pandas,Dataframe,Web Scraping,我试图从HTML页面中提取一个表,并将数据导入到一个数据框中。数据来源提供了加拿大议会的投票记录。此代码成功导入数据: import pandas as pd dfs = pd.read_html('https://www.ourcommons.ca/Members/en/votes/43/2/32',header=0) for df in dfs: print(df) 为了使其更清晰、更可读,我重置了列标题: df.columns = ['Member','Party','Vote'

我试图从HTML页面中提取一个表,并将数据导入到一个数据框中。数据来源提供了加拿大议会的投票记录。此代码成功导入数据:

import pandas as pd
dfs = pd.read_html('https://www.ourcommons.ca/Members/en/votes/43/2/32',header=0)
for df in dfs:
    print(df)
为了使其更清晰、更可读,我重置了列标题:

df.columns = ['Member','Party','Vote','Paired']
然后我点选票。现在,作为背景,议会通常有大约330张选票。对法案的投票记录为“赞成”,反对票记录为“反对”。但是,在这种情况下,.value_counts只给我否定票:

df['Vote'].value_counts().to_frame()
    Vote
Nay 118
我这样认为是因为,在这一特殊情况下,记录在案的第一次投票是“反对”。但是如果一个特定的投票以“是”开头(如本例:),那么.value\u counts()将只计算“是”的。 有人知道为什么会这样吗? 谢谢,

当您使用:

for df in dfs:
    df.columns = ['Member','Party','Vote','Paired']

它将df设置为列表的最后一个元素(设置df 21次)。正如InspectorG4dget所说,列表中的最后一个DF只有否定票。

看起来最后一个数据帧(即
dfs[-1]
)只有否定票。我在其他数据框架中看到赞成票。我不确定我是否理解为什么会发生这种情况——以及为什么每帧记录的数量看起来是随机的。但我不能否认事实我应该如何将我的列表正确地转换成一个数据帧呢?我现在就知道了。dfs[0]数据框包含我的所有数据,工作正常。谢谢