2017-04-17 23 views
0

私は現在、Pythonで作業する方法を学習していますが、現時点ではCSVファイルを扱うことが非常に好きです。私はいくつかのことを学びましたが、今は学んだことを複数のファイルに一度に適用したいのです。しかし、何か私は混乱してしまった。私はこのコードを持っている:複数のCSVファイルを一度に操作する

for root, dirs, files in os.walk(path):  
    for file in files: 
    if file.endswith(".csv"):    
     paths=os.path.join(root,file) 
     tables=pd.read_csv(paths, header='infer', sep=',') 
     print(paths) 
     print(tables) 

これは、特定のフォーマットでそのフォルダにあるすべてのCSVファイル(最初の行が下に以下のヘッダと残りが持つテーブルの一種) を印刷トリックことであるIはこれらにいつでもアクセスできるようにしたい(印刷して編集する)と、そこに書いたものは一度だけ印刷します。私がprint(paths)またはprints(tables)を書いた場合、それ以降は、同じことをするべきだとは思うが、最後のCSVファイルとそのデータだけが出力される。

また、印刷(表とパス)ごとに同様のコードを作成しようとしましたが、最初のコードでのみ機能します。os.walk() - なぜ1度しか動作しないのですか?

ありがとうございました!

答えて

3

DataFramesをロードするときに、データフレームを保存することをお勧めします。今すぐあなたはロードと破棄だけです。

dfs = [] 
for root, dirs, files in os.walk(path):  
    for file in files: 
    if file.endswith(".csv"):    
     paths=os.path.join(root,file) 
     tables=pd.read_csv(paths, header='infer', sep=',') 
     dfs.append(tables) 
     print(paths) 
     print(tables) 

上記は、あなたがアクセスして利用できるDataFrames dfsのリストです。そうですね:

print(dfs[0]) 
# prints the first DataFrame you read in. 

for df in dfs: 
    print(df) 
# prints each DataFrame in sequence 

データが保存されると、かなり多くのことができます。

+0

これは魅力的です! DataFramesを使用するために私の心を越えたことはありません、ありがとうございました!私はまだ学ぶ方法がありますが、これは多くの助けになります。 – Maiels

関連する問題