2017-11-20 18 views
1

私はそれぞれ25レコードで約200のCSVファイルを提供するPythonプログラムを持っています。私はこれらの200のファイルを1つのファイルcsvにマージし、SQLサーバーにロードしたいと思う。 (私はこれがロードするのが良い方法だと仮定しています)Pythonはcsvを13桁のISBN番号で読み取って科学的表記に変換します

最後の目的は、200 csvのすべてのデータを持つ1つのcsvファイルを持ち、SQLサーバー上にもデータをロードすることです。

すべてのファイルには同じ列があります。列の1つにISBN-13の書籍番号が含まれています。 ファイルを次のコードにマージすると、ISBN-13番号が科学記法に変換されます(9780981454221は9.78098145422e + 12に変換されます)、情報が失われています。 (最後の数字のように) これを避ける方法はありますか?ここに私のコードとサンプルデータ

import pandas as pd 
import os 
import csv 
import glob 

os.chdir("//network/My Folder/") 
df=pd.DataFrame() 
for files in glob.glob("*.csv"): 
    print files 
    df = pd.concat([df,pd.read_csv(files)],axis=0) 
df.to_csv("test.csv", sep=',', encoding='utf-8',index=False) 

csvファイル内のデータ

Book ISBN-13 
Book_1 9780262527132 
Book_2 9780071495844 
Book_3 9780679734031 
Book_4 9781621840862 
Book_5 9781614271352 

は、私はPythonとDBに新しいですです。任意の提案をいただければ幸いです。 ありがとうございます!

答えて

1

使用dtype=str

for files in glob.glob("*.csv"): 
    print files 
    df = pd.concat([df,pd.read_csv(files, dtype={'ISBN-13':str})],axis=0) 
+0

これは完璧な、動作します。ありがとうございました。 –

+0

dfをSQLにロードするようになりました。初めてそれを試して、私は問題のトンに遭遇するつもりであることを知っています。共通の問題を回避するのに役立つ候補がありますか? –

+0

@NeilS、よろしいですか? – MaxU

関連する問題