2016-10-08 3 views
2

コードが存在するフォルダにCSVファイルをnumpyで表示し、CSVファイルを2つ追加することはできますか?ファイル名を知らずにフォルダ内のcsvファイルを読み込んで追加しますか?

data = np.loadtxt('csv data file.csv', delimiter=',', skiprows=1) 

私は一緒にcsvファイルを結合し、名前を割り当てる必要があり:

私の現在のコードは次のようなものを行います。 私は上記を行い、完全なファイルを1つに入れ、ファイルの名前を知らなくてもデータを操作してプロットするためにデータに割り当てたいと思っています。

私は、このようなパンダでそれを行うことができます知っている:

path =r'C:\DRO\DCL_rawdata_files' 
allFiles = glob.glob(path + "/*.csv") 
frame = pd.DataFrame() 
list_ = [] 
for file_ in allFiles: 
    df = pd.read_csv(file_,index_col=None, header=0) 
    list_.append(df) 
frame = pd.concat(list_) 

しかし、私は簡単にするために追加する余分なモジュールを避けるためにしようとしています。これはnumpyでできますか?

+0

これは私には非常に単純に見えます。異なるモジュールは異なることを行います。そうすれば、モジュールはすべてを行うことができなくてはなりません。それはずっと簡単で、より強固です。 – cco

答えて

0

"ファイルの名前を知る"はこの問題とは関係ありません。 との例では

、ファイル名は、この行の後にを知ら次のとおりです。

allFiles = glob.glob(path + "/*.csv") 

は今allFilesすべてのファイル名が含まれています。次に、ループはファイル名を通り、各ファイルをロードし、ロードされたデータをlist_に追加します。まったく同じことはで行うことができます。

だけの特別なものは1つのデータセットにすべてのデータのマージされていますnumpy.concatenate:再び

frame = pd.concat(list_) 

、numpyのは、同様の機能を有します。 numpyので

ので、全て一緒に、:

import numpy as np 

path =r'C:\DRO\DCL_rawdata_files' 
filenames = glob.glob(path + "/*.csv") 
all_data = [] 
for filename in filenames: 
    data = np.loadtxt(filename, delimiter=',', skiprows=1) 
    all_data.append(data) 
result = np.concatenate(all_data) 
+0

結果は、すべてのファイルが追加された新しいデータになりますか? –

関連する問題