2017-07-06 43 views
0

可能是一個非常簡單的解決方法,但我的英語不夠好,無法搜索正確的答案。Python /熊貓縮寫我的號碼。

的Python /大熊貓正在改變,我從寫數字:6570631401430749喜歡的東西:6.17063140131e + 15

我合併數百CSV文件,而這一次列出來都錯了。該列的名稱是「serialnumber」及其第三列。

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

如果要以原始形式保存數據,則在讀取csv時可以使用dtype = object。您可以將您的代碼更改爲

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文件,至少要花幾個小時。很高興這工作。 – user1685493

+0

很高興幫助。 – Dark