対象のディレクトリから複数のCSVファイル(数百のファイル、それぞれ数百の行が同じ列数)を単一のPython Pandas DataFrameに読み込みたいとします。複数のCSVファイルをPythonデータフレームにインポートする処理を高速化
私が書いたコードは遅すぎます.30個のファイルを実行するには数分かかるので、すべてのファイルをロードするとどれくらい待つべきですか?より速く動作させるために何を変更できますか?
さらに、私は "_"(通常のutf-8)に "_" ?私はcoding=latin-1
を使用しています。なぜなら、ファイルにフランス語のアクセントがあるからです。
#coding=latin-1
import pandas as pd
import glob
pd.set_option('expand_frame_repr', False)
path = r'D:\Python27\mypfe\data_test'
allFiles = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
df = pd.read_csv(file_, index_col = None, header = 0, sep = ';', dayfirst = True,
parse_dates=['HeurePrevue','HeureDebutTrajet','HeureArriveeSurSite','HeureEffective'])
df.drop(labels=['aPaye','MethodePaiement','ArgentPercu'],axis=1,inplace=True)
df['Sens'].replace("\n", "-", inplace=True,regex=True)
list_.append(df)
print "fichier lu:",file_
frame = pd.concat(list_)
print frame
Pythonに到達する前にすべてのファイルを結合することはできますか?そうすれば、1つのファイルだけが読み込まれますか?代わりにファイルをまとめて 'zip'することで、ランダムアクセスが可能になりますが、オペレーティングシステムのファイルキャッシュの利点が得られます。 – chrisaycock
私はPythonに到達する前にどのように連結するか分かりません。すべてのファイルを1つのCSVファイルにするには?とzipのために、どのステップですか? – ch36r5s
はい、大きなCSVファイルを1つ作成するか、または「zip」ファイルを作成してください。これらはPythonとは関係ありません。これをPythonの外部で行う必要があります。すべてのデータを含む1つのファイルを作成したら、Pythonスクリプトにそのファイルを直接読み込ませます。 – chrisaycock