2017-07-13 8 views
0
  1. ファイルを次のようにリストとして読み込むことができました。

[ABC、1; 2; 3] [DEF、4、5、6]区切られたCSVファイルをPythonにロードするにはどうすればよいですか?

  • しかし、私はそれが以下に示されているもののような形式必要。

    [ABC、1] [ABC]、[2] [ABC、3] [DEF、4] 等

  • ここでIは、ファイルをロードするために使用されるコードは次のとおり

    ここ
    import csv 
    
    f = open('Sample.csv') 
    csv_f = csv.reader(f) 
    
    for row in csv_f: 
        print(row) 
    

    は出力です:

    ['Description', 'Article #'] 
    ['Build a Better Breakfast: Buy 2 save $2 on fruit/nuts/Milk - Kids M/Raisin Bran, RK M , Mini Wheat M PLUS Pop Tarts 12 ct.', '62758;65926;855924;856013;856179;553818;28107;29601;65928;51415;745406;414680;872002;29599;25717;25719;29608;62773;700401;746727;746743;746701;705400;817833'] 
    ['Community Coffee 12oz Ground Roast Coffee', '1027151;1027153;1059063;1170982;1170983;1170984;1170986;1170987;1170988;1170989;1182424;1216634;1216667;1225228;1228111;1245664;1245666;1248330;1249099;1249100;1308483;1330732;1330744;1336906'] 
    ["Keurig Green Mountain Core 12CT - Flavors Include: Columbian, Breakfast Blend, Hazelnut, Dark Magic Extra Bold, Newman's Own Blnd, French Vanilla, Caribou Blnd, Nantucket, Caramel Vanilla Crm, Dark Magic Decaf, Half Caff, Tully's French Rst, Tully's Hawaiin Bln - Dc'd, Breakfast Decaf, Pumpkin Spice, Cinnamon Roll Cinnabon, Donut Shop Decaf, Donust Shop, French Vanilla Decaf, Krispy Cream 9 New), Coconut Mocha (New), Donut Shop Dark (New)", '15136;15137;15166;15167;15168;22392;22664;22784;31015;31017;31020;40948;40980;41238;48742;48754;48756;48777;99555;08300;99555;08588;99555;086577'] 
    ['Starbucks K-Cups 10ct & 12oz R&G Coffee', '50794;50796;26470;26475;26479;30067;30082;41007;41008;41022;41196;50795;49424;49421;7700;30070;49414;49416;149195;149237;161588;373787;373886;373902;374264;374298;431858'] 
    
    +1

    ここにコードとサンプルデータを表示する必要があります。区切り記号が混在しているようです。 – roganjosh

    +0

    いくつかのコードを表示していただきありがとうございます。私は問題がデリミタではないと思っています(あなたは 'csv.reader'でデリミタを指定できますが、デフォルトはカンマです)。あなたが望むのはカスタムコードIIUCです。あなたは2回目の分割をしなければなりません。私に分を与える。 – roganjosh

    答えて

    0

    からあなたの最初の質問は、私はこれがあなたが探しているアウトプットだと思います(ただし、「Keurig Green Mountain ...」を開始するカテゴリは私には分かりません)。 CSVリーダーは、,の区切り文字を正しく区切っていますが、ABC;区切り文字に基づく第2の区切りの区切りに対して永続させるには、ネストしたforループが必要です。

    csv_reader_output = [['Description', 'Article #'], 
    ['Build a Better Breakfast: Buy 2 save $2 on fruit/nuts/Milk - Kids M/Raisin Bran, RK M , Mini Wheat M PLUS Pop Tarts 12 ct.', '62758;65926;855924;856013;856179;553818;28107;29601;65928;51415;745406;414680;872002;29599;25717;25719;29608;62773;700401;746727;746743;746701;705400;817833'], 
    ['Community Coffee 12oz Ground Roast Coffee', '1027151;1027153;1059063;1170982;1170983;1170984;1170986;1170987;1170988;1170989;1182424;1216634;1216667;1225228;1228111;1245664;1245666;1248330;1249099;1249100;1308483;1330732;1330744;1336906'], 
    ["Keurig Green Mountain Core 12CT - Flavors Include: Columbian, Breakfast Blend, Hazelnut, Dark Magic Extra Bold, Newman's Own Blnd, French Vanilla, Caribou Blnd, Nantucket, Caramel Vanilla Crm, Dark Magic Decaf, Half Caff, Tully's French Rst, Tully's Hawaiin Bln - Dc'd, Breakfast Decaf, Pumpkin Spice, Cinnamon Roll Cinnabon, Donut Shop Decaf, Donust Shop, French Vanilla Decaf, Krispy Cream 9 New), Coconut Mocha (New), Donut Shop Dark (New)", '15136;15137;15166;15167;15168;22392;22664;22784;31015;31017;31020;40948;40980;41238;48742;48754;48756;48777;99555;08300;99555;08588;99555;086577'], 
    ['Starbucks K-Cups 10ct & 12oz R&G Coffee', '50794;50796;26470;26475;26479;30067;30082;41007;41008;41022;41196;50795;49424;49421;7700;30070;49414;49416;149195;149237;161588;373787;373886;373902;374264;374298;431858']] 
    
    new_list = [] 
    
    for row in csv_reader_output[1:]: # Avoid the title row 
        description = row[0] # Your ABC 
        for article in row[1].split(';'): # Splitting the article number 
         new_list.append([description, article]) 
    
    for item in new_list: 
        print(item) 
    
    関連する問題