下面是我的seleniumwebscraper的最后一部分,它循环遍历这个网站页面的不同选项卡,选择“exportdata”按钮,下载数据,添加一个“yearid”列,然后将数据加载到mysql表中。
df = pd.read_csv(desired_filepath)
df = df.replace('%','',regex=True)
df["yearid"] = datetime.today().year
df.to_csv(desired_filepath)
engine = create_engine("mysql+pymysql://{user}:{pw}@localhost/{db}"
.format(user="walker",
pw="password",
db="data"))
df.to_sql(con=engine, name='fg_test_hitting_{}'.format(button_text), if_exists='replace')
time.sleep(10)
driver.quit()
scraper工作得很好,但是当数据被加载到mysql表中时,有一些列作为文本加载,而它们应该作为数字加载,最好是双精度数据类型。我注意到这只发生在字符串末尾有%符号的列名中(即bb%)。我已经消除了列标题下所有行中的%符号,但是数据仍然作为文本加载到mysql中。在将数据加载到mysql之前,是否有任何方法可以更改列名中带有%符号的所有列的数据类型?提前谢谢!
1条答案
按热度按时间lnvxswe21#
演示:
将url解析为df:
显示有问题的列:
将它们转换为数字列:
结果: