我使用的開發工具是vscode。
首先匯入所需要的包:
import pandas as pd
import numpy as np
import ibm_db
import datetime
第一步我們首先讀取兩個csv,使用pandas
#讀取兩個csv進行拼接
df1 = pd.read_csv('input_data_1.csv')
df2 = pd.read_csv('input_data_2.csv')
#對資料進行清洗,將nan替換為sql能夠識別的0.0
df = df.replace(np.nan,0.0, regex=true)
這裡注意我們開啟的檔案是放置在vscode開啟的資料夾中,可以不需要指定檔案位置。
經過第一步,我們獲得了乙個df。
然後我們建立乙個sql語句:
insertsql = "insert into aaaa (id,name,property,desc) values "
遍歷df,將屬性值拼接在sql語句中
for index,row in df.iterrows():
insertsql += ('(' + str(row['id'])+','+'\''+row['name']+'\''+','+str(row['property'])+','+'\''+row['desc']+'\''+')'+',')
insertsql = insertsql[:-1]
最後一句是為了將迴圈新增的逗號刪除。
這樣我們獲得了乙個存有df中所有資料的sql語句,下一步定義乙個sql操作函式,執行這個sql語句。
# sql執行函式,執行結束後返回success
def excuteinsert(insertsql):
ibm_db.exec_immediate(conn,insertsql)
return 'insert success'
定義完畢,我們執行一下:
if __name__ == '__main__':
try:
print(excuteinsert(insertsql))
except:
traceback.print_exc()
finally:
#關閉資料庫連線
ibm_db.close(conn)
endtime = datetime.datetime.now()
time = endtime - starttime
print (str(time)+'.seconds')
print('程式執行結束!')
endtime和starttime用於計算程式執行的真實時間。
Python使用pandas讀取csv和excel
詳細引數見 得到data資料框,index為time,變數名為value,index col 0表示將data中的第乙個變數設定成index data pd.read csv data.csv header none,names time value index col 0 得到data資料框,sh...
pandas讀取csv檔案
import pandas as pd pd.set option display.max columns none 在pycharm下可以顯示所有列 pd.set options display.max rows none 在pycharm下可以顯示所有行 給每一列命名,注意第一行的設定 data...
pandas讀取csv檔案
1.匯入的包 import pandas as pd import numpy as np 2.讀取檔案我主要使用的是csv檔案格式,內容為如下 將資料加入到指定路徑中,然後進行讀檔案 def read csv path f open path,encoding utf 8 read data pd...