利用pandas实现从数据库读写数据

来源:互联网 发布:mac macintosh hd 编辑:程序博客网 时间:2024/05/17 04:05

可以使用pandas的 

1、read_sql_query来执行sql语句

2、read_sql实现获取整个表的数据

3、to_sql实现向数据库中添加数据

--------------------------------------------------------------------------------------------------------------------------------------------------------

  1. read_sql_table(table_name, con[, schema, ...])           Read SQL database table into a DataFrame. 
  2. read_sql_query(sql, con[, index_col, ...])                      Read SQL query into a DataFrame. 
  3. read_sql(sql, con[, index_col, ...])                                 Read SQL query or database table into a DataFrame. 
  4. DataFrame.to_sql(name, con[,avor, ...])          Write records stored in a DataFrame to a SQL database.

--------------------------------------------------------------------------------------------------------------------------------------------------------

 

实例:

 

  1. today = datetime.datetime.now()
  2. daogang= today.replace(hour=8, minute=10,second=3)
  3. ligang= today.replace(hour=17, minute=05,second=3)
  4. logindate= daogang.strftime('%Y-%m-%d')
  5. df['logindate'] = logindate
  1. [m1,n1] = df.shape
  1. for iin range(m1):
  1. daogang_time = (daogang-datetime.timedelta(minutes= random.randint(0,15),seconds=random.randint(0,59))).strftime('%H:%M:%S')
  2. ligang_time= (ligang-datetime.timedelta(minutes= random.randint(0,10),seconds=random.randint(0,59))).strftime('%H:%M:%S')
  3. df.iloc[i,5] = daogang_time
  4. df.iloc[i,6] = ligang_time
  5. engine= create_engine('mysql+pymysql://root:123456@localhost:3306/office?charset=utf8')
  6. loginList= pd.read_sql_query("select * from kaoqin_sub where logindate ='"+str(logindate)+u"'", engine)
  1. [m2,n2] = loginList.shape   
  1. mypd = loginList[0:m1].copy()
  2. mypd= mypd.drop([u"daogang_time","ligang_time"],axis=1)
  1. if m2>0:
  2. for iin range(m1):
  1. mypd.loc[i,"id"] = df.loc[i,"id"]
  2. mypd.loc[i,u"name"] = df.loc[i,u"name"]
  3. mypd.loc[i,u"groupid"] = df.loc[i,u"groupid"]
  4. mypd.loc[i,u"dept"] = df.loc[i,u"dept"]
  5. mypd.loc[i,u"logindate"] = df.loc[i,u"logindate"]
  6. mypd.loc[i,u"daogang_time"] = df.loc[i,u"daogang_time"]
  7. mypd.loc[i,u"ligang_time"] = df.loc[i,u"ligang_time"]
  8. mypd.loc[i,u"daogang_IP"] = df.loc[i,u"daogang_IP"]
  9. mypd.loc[i,u"ligang_IP"] = df.loc[i,u"ligang_IP"]
  10. mypd.to_sql('kaoqin_sub',engine,if_exists='append',index=False
1 0
原创粉丝点击