基于特定匹配项填充数据框中的新额外列
我正在尝试使用 BeautifulSoup
从Outlook应用程序读取HTML表。该表包含两个主列: tricker
和 Price
。现在,我试图将第三列添加到现有数据框架中。
我能够添加它很艰难,并且可以正常工作,直到电子邮件有完整的股票列表(共有7个)。如果有时我们没有收到股票的完整列表,例如,从7个收到3个股票的价格,则在第3列中,我需要 pkeys
对这3个诉讼。
怎么可能?
我们有以下代码:
import pandas as pd
import win32com.client
from sqlalchemy.engine import create_engine
import re
from datetime import datetime, timedelta
import requests
import sys
from bs4 import BeautifulSoup
from pprint import pprint
EMAIL_ACCOUNT = 'robinhood.gmail.com'
EMAIL_SUBJ_SEARCH_STRING = 'Morgan Stanley Systematic Strategies Daily Levels'
out_app = win32com.client.gencache.EnsureDispatch("Outlook.Application")
out_namespace = out_app.GetNamespace("MAPI")
root_folder = out_namespace.GetDefaultFolder(6)
out_iter_folder = root_folder.Folders['Email_Snapper']
item_count = out_iter_folder.Items.Count
Flag = False
cnt = 1
if item_count > 0:
for i in range(item_count, 0, -1):
message = out_iter_folder.Items[i]
if EMAIL_SUBJ_SEARCH_STRING in message.Subject and cnt <=1:
cnt=cnt+1
Body_content = message.HTMLBody
Body_content = BeautifulSoup(Body_content,"lxml")
html_tables = Body_content.find_all('table')[0]
#Body_content = Body_content[:Body_content.find("Disclaimer")].strip()
df = pd.read_html(str(html_tables),header=0)[0]
Pkey = [71763307, 76366654, 137292386, 151971418, 151971419, 152547427, 152547246]
df['Pkey'] = Pkey
print(df)
输出:输出看起来还不错,直到我们从银行获得了全面的股票列表
“ nofollow noreferrer”>
我收到的错误消息是:
ValueError : Length of values does not match length of index*
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试使用PD.Series([[755454,556554,2545454,54644,878798]))
Try using pd.series([755454,556554,2545454,54644,878798])