2017-10-06 298 views
0

我正在循環瀏覽文件夾中的所有excel文件並將它們附加到數據框中。一列(列C)有一個ID號碼。在某些表單中,ID被格式化爲文本,而在其他表單中,格式化爲數字。在導入期間或之後更改數據類型的最佳方法是什麼,以便數據類型一致?我可以在導入前在每個excel文件中更改它們,但有40多張。Python/glob glob - 在導入過程中更改數據類型

for f in glob.glob(path): 
    dftemp = pd.read_excel(f,sheetname=0,skiprows=13) 
    dftemp['file_name'] = os.path.basename(f) 
    df = df.append(dftemp,ignore_index=True) 

回答

1

不要追加到循環中的數據框,每個追加都會將整個數據框重新定位到內存中的新位置,速度很慢。做一個單CONCAT閱讀所有dataframes後:

dfs = [] 
for f in glob.glob(path): 
    df = pd.read_excel(f,sheetname=0,skiprows=13) 
    df['file_name'] = os.path.basename(f) 
    df['c'] = df['c'].astype(str) 
    dfs.append(df) 

df = pd.concat(dfs, ignore_index=True) 

這聽起來像你ID,那是c列,是一個字符串,但有時缺乏字母。理想情況下,這應該用作字符串。

相關問題