rs6000

Pandas to_sql

Jan 9th, 2019
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.40 KB | None | 0 0
  1. import pandas as pd
  2. import os
  3. from sqlalchemy import create_engine
  4.  
  5.  
  6. #連線conn
  7. engine = create_engine('mysql://資料庫使用者:密碼@localhost/資料庫名稱?charset=utf8',echo = True)
  8.  
  9. workpath = os.getcwd()
  10. csv_path = os.path.join(workpath, "temp_csv")
  11. #csv清單
  12. csv_file = os.path.join(csv_path, '2014_csv.txt')
  13. #讀檔
  14. csv_list=pd.read_csv(csv_file,sep='\t',header=None)
  15. csv_list.columns = ['name']
  16.  
  17. #讀取csv_list裡面的csv檔&寫入資料庫
  18. for i in csv_list['name'][1:-1].head(5):
  19.     data=pd.read_csv(os.path.join(csv_path, i))
  20.     #df = pd.DataFrame(data, columns=['stock_name', 'date', 'open','high','low','close','volume','nfb/s'] ,dtype=str)
  21.  
  22.     data.columns = ['stock_name', 'date', 'open','high','low','close','volume','nfb/s']
  23.     #日期格式
  24.     data['date']=pd.to_datetime(data['date'], format="%m/%d/%Y")
  25.     #股票資料
  26.     allstocks = [True if x[0] != '^' else False for x in data['stock_name']]
  27.     #市場指數
  28.     markets=[True if x[0] == '^' else False for x in data['stock_name']]
  29.     new_markets=data[markets]
  30.     new_markets['stock_name'] = new_markets['stock_name'].astype(str)
  31.     new_markets['stock_name'] = new_markets['stock_name'].str.strip('^')
  32.    
  33.     #寫入Mysql資料庫
  34.     data[allstocks].to_sql('stcks',engine,if_exists='append', index=False)
  35.     #寫入Mysql資料庫
  36.     new_markets.to_sql('markets',engine,if_exists='append', index=False)
Advertisement
Add Comment
Please, Sign In to add comment