2016-07-19 4 views
0

私の神経が壊れてしまう前にガイダンスについて簡単に質問してください! :)プロジェクトのガイダンス - 複数のcvs /データフレームへの変更

私は1つの大きな新しいCSVファイルにマージする複数のCSVファイルを持っています。

Muzicast V2;;;;;;;; 
Zoom mÈdia sur Virgin Radio;;;;;;;;; 
Sem. 16 : Du 15 avril 2016 au 21 avril 2016;;;;;;;;; 
;;;;;;;;; 
;;;;;;;;; 
TOP 40;;;;;;;;; 
Rg;Evo.;Rg-1;Artiste;Titre;Genre;Label;Audience;Nb.Diffs;Nb.Sem 
1;+3;4;Twenty One Pilots;Stressed out;Pop/Rock International;WEA;5 982 000;56;18 
2;+1;3;Coldplay;Hymn for the weekend;Pop/Rock International;WEA;5 933 000;55;13 
3;-2;1;Imany;Don't be so shy (Filatov & Karas remix);Dance;THINK ZIK;5 354 000;55;7 
4;-2;2;Lukas Graham;7 years;Pop/Rock International;POLYDOR;5 927 000;54;16 
5; =;5;Justin Bieber;Love yourself;Pop/Rock International;MERCURY GROUP;5 481 000;49;21 

すべてのCVSファイルが同じフォーマットを持っている:

すべてのファイルは、まったく同じ構造を有しています。 私はしたいと思います: - 各ファイルを1つずつ開きます/最初の10行を無視してください - すべての情報を ";"セパレータとして - 各行の先頭に変数を挿入します。
- 各ファイルのすべての情報を含む新しいファイルに書き込みます。

私は、ファイルを開くために管理し、私は必要な変更を行わ:私は

file_dir = "VIRGIN" 
main_df = pd.DataFrame() 
for i, file_name in enumerate(os.listdir(file_dir)): 

if i == 0 : 
    main_df = pd.read_csv(file_dir + "/" + file_name, sep=";") 
    main_df["file_name"] = file_name 


else : 
    current_df = pd.read_csv(file_dir + "/" + file_name, sep=";") 
    current_df["file_name"] = file_name 
    current_df = current_df 

    main_df = pd.concat([main_df,current_df],ignore_index=True) 

print main_df 

=複数のファイルを開くと、データフレームを作成するために管理しかし、今、私がしようとして問題がある

handle = open(file_dir+'/'+'virgin092016.csv','r') 

results = [] 

for line in handle : 
    line = '12;2016;'+line 
    line = line.lower() 
    line = line.strip() 
    line = line.split(';') 
    line = line[0],line[1],line[5] 
    results.append(line) 

    df = pd.DataFrame(results) 

print df 

を両方を同時に行う。

私はコードを実行する順序がわからないため、部品が不足していると思います。

ファイルを開いて開き、MAIN.CSV(すべてのファイルの最終情報が入ります)に直接書き込んでから、DataFrameを実行する必要がありますか? ORファイルを開く必要がありますか?データフレームとそれ以降は必要な変更を行います。

私は複数のオンラインコースと読書をしています...しかし、私はまだ自分の考え方では "ピジョンソニック"ではないと感じています。

助けていただければ幸いです。 おかげで私はすべてのあなたのCSVファイルを想定してい

答えて

0

main_dirで定義され、"./data/"であり、そしてすべてのあなたのCSVファイルの合計があなたのRAMメモリを超えていないこと。そのトリックは、一時変数current_dfを使用して、最終データフレームfinal_dfpd.concatを追加することです。

import os 
import pandas as pd 

main_dir = "./data/" 
all_files = os.listdir(main_dir) 

for i, file_name in enumerate(all_files): 
    current_df = pd.read_csv(main_dir+file_name, 
          sep=";", 
          skiprows=10) 

    #add here whatever information you need to your dataframe 
    #dump the results into a separate file with current_df.to_csv() 

    if i == 0: 
     final_df = current_df 
    else: 
     final_df = pd.concat([final_df, current_df], axis=0) 
関連する問題