2017-07-06 5 views
0

おそらく非常に簡単な修正ですが、私の英語は適切な答えを探すのに十分ではありません。以下のようなものに6570631401430749:パイソン/パンダは私から書いている数字を変更している私の数字を省略したPython/Pandas。

は 6.17063140131e + 15

私は、CSVファイルの数百をマージしていますが、この1つの列がすべて間違って出てきます。列の名前は "serialnumber"で、その第3列です。

import pandas as pd 
import glob 
import os 

interesting_files = glob.glob("*.csv") 
df_list = [] 

for filename in sorted(interesting_files): 
    frame = pd.read_csv(filename) 
    print(os.path.basename(filename)) 
    frame['filename'] = os.path.basename(filename) 
    df_list.append(frame) 
full_df = pd.concat(df_list) 
full_df.to_csv('output.csv',encoding='utf-8-sig') 
+0

どのように結果のCSVを表示していますか?科学記法が実際にファイルに書き込まれていることを確認してください。ファイルを見るために使用している自動変換は行われませんか?たとえば、ExcelでCSVを開くと、ファイルに格納されているものとは異なるものが表示されることがあります。 –

+0

はい。私はNotepad ++でそれを開いたので、変換が実際に起こった。 – user1685493

+0

良い考えです。私の同僚はそれに歩み続けています。 Excelは実際には数字や書式設定に一般的に数字を使用することがあります。 – user1685493

答えて

2

dtype = objectは、元の形式でデータを保存する場合は、csvを読むときに使用できます。コードを変更することができます

import pandas as pd 
import glob 
import os 

interesting_files = glob.glob("*.csv") 
df_list = [] 

for filename in sorted(interesting_files): 
    frame = pd.read_csv(filename,dtype=object) 
    print(os.path.basename(filename)) 
    frame['filename'] = os.path.basename(filename) 
    df_list.append(frame) 
full_df = pd.concat(df_list) 
full_df.to_csv('output.csv',encoding='utf-8-sig') 
+1

ありがとうございます。魅力のように働いた。上司はCSVファイルを手作業で読み込みたいと思っていました。少なくとも2,3時間はかかりました。これはうまくいきました。 – user1685493

+0

喜んで助けました。 – Dark

関連する問題