8/5
开发注意事项:
- 代码可能会出错的地方至少要加上try-----catch,不然都要加上装饰器(比如日志方法)
pandas的:
- 读取excel的数据到dataframe中,df = pandas.read_excel(filepath)
- df.dropna():去除NaN的行
navicat中到处表结构以及数据文件:
点击-->转储
pandas的to_sql的一些注意事项
- 不能使用pymysql和mysqldb,要使用sqlalchemy,或者sqlite3(比较少用)
- from sqlalchemy import create_engine
- con = create_engine("mysql+pymsql://root:password@host:port/databasename?charset=utf8")
- 最后把df.to_sql(tablename, con=con, if_exists={'fail','replace','append'}, index=False)
- append:如果表存在,把数据插入,否则创建一个新表
- fail:表不存在,啥也不做,存在就插入数据
- replace:表存在就删了表,再建立一个新表,再把数据插入
- index=False:表示不把excel中的下标写入数据表中,因为有可能数据表没有这个字段,会报错
新工作:
- 把analysis_main中的analyse_compt_aim,修改aims_task,通过complaint_info的值来看有没有在产品list里面,拼接成一个字符串返回,应用到t_df的compt_aims字段(本来是走模型来分析产品名的,可能是模型不太行)
- dao得到的数据是((),(),()),内层括号是每一行的数据,所以我们要进行进一步的解析,[item[0] for item in reslist]
- t_df是worksheet表的映像
- apply函数的使用,比for更高效,不会修改原有字段,会生成一个临时列表
- apply是对每一行进行处理