|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
下面的代码形成一列数据帧,我想要项目和数据两列,要怎么修改?求大师帮忙,谢谢
data = '''<div class="fund-info">
<ul>
<li class="padding-left-10">
<a href="/Company/f10/gmbd_80000229.html">管理规模</a>:
<label class="grey">15339.72亿元</label>
</li>
<li>基金数量:
<label class="grey"><a href="/Company/f10/jjjz_80000229.html">550</a>只</label>
</li>
<li>经理人数:
<label class="grey"><a href="/Company/f10/jjjl_80000229.html">73</a>人</label>
</li>
<li class="rating">天相评级:
<label class="star grade iconfont"></label>
<label class="star grade iconfont"></label>
<label class="star grade iconfont"></label>
<label class="star grade iconfont"></label>
<label class="star grade iconfont"></label>
</li>
<li class="date">成立日期:
<label class="grey">2001-04-17</label>
</li>
<li>公司性质:
<label class="grey">中资企业</label>
</li>
</ul>
</div>'''
div_list = soup.find_all('div', class_="fund-info")[0]
li_list = div_list.find_all('li')
li_list_d = []
for li in li_list:
#li_text = re.sub(r'\s','',li.get_text().strip())
li_text = re.sub(r'\s','',li.get_text())
li_list_d.append(li_text)
print(li_list_d) #['管理规模:15339.72亿元', '基金数量:550只', '经理人数:73人', '天相评级:\ue62d\ue62d\ue62d\ue62d\ue62d', '成立日期:2001-04-17', '公司性质:中资企业']
df2 = pd.DataFrame(li_list_d)
print(df2)
您好!根据您的需求,我帮您修改了代码,使其能够生成一个包含“项目”和“数据”两列的数据帧。
请参考以下代码:
import re
import pandas as pd
from bs4 import BeautifulSoup
data = '''<div class="fund-info">
<ul>
<li class="padding-left-10">
<a href="/Company/f10/gmbd_80000229.html">管理规模</a>:
<label class="grey">15339.72亿元</label>
</li>
<li>基金数量:
<label class="grey"><a href="/Company/f10/jjjz_80000229.html">550</a>只</label>
</li>
<li>经理人数:
<label class="grey"><a href="/Company/f10/jjjl_80000229.html">73</a>人</label>
</li>
<li class="rating">天相评级:
<label class="star grade iconfont"></label>
<label class="star grade iconfont"></label>
<label class="star grade iconfont"></label>
<label class="star grade iconfont"></label>
<label class="star grade iconfont"></label>
</li>
<li class="date">成立日期:
<label class="grey">2001-04-17</label>
</li>
<li>公司性质:
<label class="grey">中资企业</label>
</li>
</ul>
</div>'''
soup = BeautifulSoup(data, 'html.parser')
div_list = soup.find_all('div', class_="fund-info")[0]
li_list = div_list.find_all('li')
project_list = []
data_list = []
for li in li_list:
li_text = re.sub(r'\s', '', li.get_text())
project, data = re.split(r':', li_text, maxsplit=1)
project_list.append(project)
data_list.append(data)
df = pd.DataFrame({'项目': project_list, '数据': data_list})
print(df)
这个代码首先将提取到的信息分为项目和数据两部分,然后将它们分别添加到两个列表中。
最后,我们根据这两个列表创建一个包含“项目”和“数据”两列的数据帧。
注意:请确保已安装 BeautifulSoup 库。如果没有安装,请使用以下命令进行安装:
pip install beautifulsoup4
|
|