如题。
最近在做个简易的统计脚本,思路大致描述一下:
用到的工具:
mysql,
selenium.webdriver
pymysql,sqlalchemy,pandas,numpy
mysql的建库建表部份就直接省略了:
1,毕竟与这个主题是弱关系;
2,大部份的问题都能直接从百度上,甚至直接在优快云网站里检索到;
3,关于mysql报错还是提一嘴吧,执行sql语句报错时候会有个报错数字号码(一般为4位数),可以直接按照关键词格式“数据库软件名(空格)报错数字号码”,在搜索引擎(如百度,谷歌,优快云的检索栏等等)检索报错的原因,再根据查询到的报错原因修改sql语句就可以了。
思路正文:
首先自然是从销售平台下载账单,将会获取到一个CSV文件。
然后就可以用csv_table=pd.read_csv进行读取了。
由于账单文件中,存在
f“一个订单中的同一种货物,如果客人购买的个数超过1个,也会分成 {购买个数} 行”
的情况,所以在导入到mysql前,需要做一次pivot_table,尽量将同一订单中的同一货物,归到同一行记录中。
接着就是去除与数据库中记录重复的记录这一项工作:
从上一个步骤中获取到的table对象中,提取日期范围,
再通过db_table=pd.read_sql,结合sql语句,从数据库中请求到在日期范围内的所有记录,
接着将csv_table和db_table两个表做一次取差,保留在csv_table中有,但db_table中没有的记录,
然后就可以通过pd.to_sql导入数据库了。
~~~~~~~我是短小精干的分割线~~~~~~~
上述获取数据的过程中,其中pivot_table的步骤,会产生一个问题:
由于pivot_table中的index形参,可以通过传入包含有column_name的列表来生成pivot_table的前半截的原因,所以我直接将一些文本类型的column给全部弄到了这个列表里。
但这些列中,也并不是每一列的记录都是齐全的,这也是导致问题的根本原因:
在账单中,也包含