Python:仅将列表的某些元素添加到数据框

时间:2020-06-17 11:16:58

标签: python list dataframe dictionary

使用BeautifulSoup,我试图抓取一些运动成绩。

from urllib.request import urlopen as uReq
import bs4
from bs4 import BeautifulSoup as soup
import pandas as pd

my_url = 'http://www.ufcstats.com/fight-details/e9eab0fa03eecd9b'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html,'html.parser')

f_details = page_soup.find('div', class_='b-fight-details__content' )
f_details_inside = f_details.findAll('i')
s1 = list()
for item in f_details_inside:
     s1.append(item.text)

 print(s1)

现在,我将其保存在如下所示的列表中。我不希望此列表中的所有元素,而只希望具有某些索引号的那些元素。

['\n\n          Method:\n\n        \n Decision - Unanimous \n', '\n          Method:\n\n        ', ' Decision - Unanimous ', '\n\n          Round:\n        \n        5\n      ', '\n          Round:\n        ', '\n\n          Time:\n        \n        \n        5:00\n\n      ', '\n          Time:\n        ', '\n\n          Time format:\n        \n        5 Rnd (5-5-5-5-5)\n      ', '\n          Time format:\n        ', '\n\n          Referee:\n        \n\n                                Herb Dean\n                            \n', '\n          Referee:\n        ', '\n\n          Details:\n        \n', '\n          Details:\n        ', "\nSal D'amato \n\n            \n            \n            44 - 50.\n          ", '\nDerek Cleary \n\n            \n            \n            44 - 50.\n          ', '\nEric Colon \n\n            \n            \n            45 - 50.\n          ']

我制作了一个字典,其中选择的列名与要从上面的列表中收集的s1的索引相匹配。

col_to_str_dict = {'Method':'0','Decision':'2','Round':'3', 'Time':'5','Timeformat':'7','Referee':'9','Judge1':'13','Judge2':'14','Judge3':'15' }

我创建了一个空的数据框,用于存储上述列表中的信息。

test_df = pd.DataFrame(columns=['Method', 'Decision', 'Round', 'Time', 'Timeformat', 'Referee', 'Judge1', 'Judge2', 'Judge3'])

我想遍历字典中的项目,以将相关数据存储在数据框的相关列中,但无法正常工作。

for key, values in col_to_str_dict.items():
    print(key)
    print(values)
    test_df[key] = s1[int(values)]

但是我无法为数据框分配值。最终,我想为很多MMA战斗创建此数据集。

0 个答案:

没有答案