

複数のファイル結合を目指しております。最下部エラーの改善策を教えてくださいませ。

１、データの確認をしました

[code]

    import pandas as pd
    file_path =r"C:\Users\t\anaconda\t\001urishi_sousa\jyuretsu\2014USINPCSV_10249669.csv"
    df1 = pd.read_csv(file_path, index_col=0, encoding="CP932")
    df1.head(5)
    df1.tail(3)
    df1.info()
    df1.columns
    df1.dtypes
    
[/code]

なお、各CSVの先頭行のイメージは次です。

[code]

    支社コード,支社名,支店コード,支店名,センターコード,センター名,損益管理コード,損益管理名,伝票番号,行番号,伝票日付,伝票分類コード,伝票分類名,他社伝票区分,他社伝票番号,最終納品日,伝票種別,入力部署コード,入力部署名,入力者,得意先法人コード,得意先法人検索名,得意先コード,得意先検索名,請求先法人コード,請求先法人検索名,請求先コード,請求先検索名,仕入先法人コード,仕入先法人検索名,仕入先コード,仕入先検索名,支払先法人コード,支払先法人検索名,支払先コード,支払先検索名,セグメントコード,大分類コード,中分類コード,小分類コード,業務分類名,商品コード,品名,メモ欄,ケース入数,備考,数量,数量単位,売上単価,売上金額,売上消費税率区分,売上消費税金額,売上消費税入力区分,仕入単価,仕入金額,仕入消費税率区分,仕入消費税金額,仕入消費税入力区分,原紙区分,原紙規格,原紙連量,原紙連数,原紙本数,原紙数量,配送先コード,配送先名１,配送先名２,時間指定,定義番号,外部データフォーマット名,バッチ番号,レコード番号,予備コード１,予備コード２,予備コード３,予備コード４,予備コード５,売仕確定,売仕連携NO,入金予定日,入金予定日区分,請求書発行処理日,請求締日,請求書発送区分,請求データ作成区分,請求書確定区分,請求番号,編集前請求番号,売掛連携区分,支払締日,支払条件,支払予定年月,支払日区分,支払予定日区分,納品予定日,納品確定日,売上仕入承認区分,売上仕入承認日,売上仕入承認者名,登録日,更新日
    100836,りんご部,100836,りんご部,1370,みかん（東日本）,35520,みかん（東日本）,1545546,1,20200120,9999,めろん,,,20200120,売仕,26709,管理部（バナナ）,どすこい,60053674,株式会社きゅうり,60223244,株式会社きゅうり　（カレー）,60053674,株式会社きゅうり,60128624,株式会社きゅうり　（カレー）,10002795,株式会社カレー,60158029,株式会社カレー,10002795,株式会社カレー,60014525,株式会社カレー,6,610,10,131,ノート,41099,運賃,緑,0,修正,96,,32,32,外税10%,3.2,自動計算,2,6,外税10%,0.6,自動計算,0,,0,0,0,0,0,,,,0,,0,0,,,,,,1,10232182,20200229,請求先マスター通り,末日,20200131,専用請求書,請求書個別発行,確定済み,10171180,10171176,0,20200131,末日締め 翌月20日,202002,末日,支払先マスター通り,0,20191230,承認,20200108,パンダ,20200108,0
    100836,りんご部,100836,りんご部,1372,みかん（西日本）,35522,みかん（西日本）,1545547,1,20200101,9999,めろん,,,20200106,売仕,26709,管理部（バナナ）,どすこい,60049024,きゃべつ株式会社,60149138,きゃべつ株式会社,60049024,きゃべつ株式会社,60096362,きゃべつ株式会社,60055839,株式会社ハヤシライス,60213882,株式会社ハヤシライス,60055839,株式会社ハヤシライス,60017495,株式会社ハヤシライス,6,610,10,202,筆箱,79948,ショウガ,黄色,1,生姜,97,枚,33,33,外税10%,3.3,自動計算,3,7,外税10%,0.7,自動計算,0,,0,0,0,0,0,,,,0,,0,0,,,,,,1,10232182,20200430,請求先マスター通り,末日,20200131,専用請求書,請求書個別発行,確定済み,10171179,10171175,0,20200131,末日締め 翌月末日,202002,末日,支払先マスター通り,0,20191209,承認,20200108,パンダ,20200108,0
    100836,りんご部,100836,りんご部,1372,みかん（西日本）,35522,みかん（西日本）,1545548,1,20200101,9999,めろん,,,20200106,売仕,26709,管理部（バナナ）,どすこい,60049024,きゃべつ株式会社,60149138,きゃべつ株式会社,60049024,きゃべつ株式会社,60096362,きゃべつ株式会社,60055839,株式会社ハヤシライス,60213882,株式会社ハヤシライス,60055839,株式会社ハヤシライス,60017495,株式会社ハヤシライス,6,610,10,202,筆箱,79949,抹茶,黄色,1,抹茶色,98,枚,34,34,外税10%,3.4,自動計算,4,8,外税10%,0.8,自動計算,0,,0,0,0,0,0,,,,0,,0,0,,,,,,1,10232182,20200430,請求先マスター通り,末日,20200131,専用請求書,請求書個別発行,確定済み,10171179,10171177,0,20200131,末日締め 翌月末日,202002,末日,支払先マスター通り,0,20191209,承認,20200108,パンダ,20200108,0
    100836,りんご部,100836,りんご部,1372,みかん（西日本）,35522,みかん（西日本）,1545557,1,20200101,9999,めろん,,,20190108,売仕,26709,管理部（バナナ）,どすこい,513752,にんじん株式会社,10005779,にんじん株式会社　多度津工場,513752,にんじん株式会社,10005779,にんじん株式会社　多度津工場,60055597,株式会社ラーメン,60210923,株式会社ラーメン,60055597,株式会社ラーメン,60017359,株式会社ラーメン,6,610,10,144,ティッシュ,42005,加工賃,赤黒,0,物流,99,,35,35,外税8%,2.8,自動計算,5,9,外税8%,0.72,自動計算,0,,0,0,0,0,0,,,,0,,0,0,,,,,,1,10232182,20200229,請求先マスター通り,末日,20200131,専用請求書,請求書個別発行,確定済み,10171213,0,0,20200131,末日締め 翌月末日,202002,末日,支払先マスター通り,0,20190108,承認,20200108,パンダ,20200108,0
    100836,りんご部,100836,りんご部,1372,みかん（西日本）,35522,みかん（西日本）,1545557,2,20200101,9999,めろん,,,20190108,売仕,26709,管理部（バナナ）,どすこい,513752,にんじん株式会社,10005779,にんじん株式会社　多度津工場,513752,にんじん株式会社,10005779,にんじん株式会社　多度津工場,60055597,株式会社ラーメン,60210923,株式会社ラーメン,60055597,株式会社ラーメン,60017359,株式会社ラーメン,6,610,10,144,ティッシュ,42005,加工賃,赤黒,0,費用,100,,36,36,外税8%,2.88,自動計算,6,10,外税8%,0.8,自動計算,0,,0,0,0,0,0,,,,0,,0,0,,,,,,1,10232182,20200229,請求先マスター通り,末日,20200131,専用請求書,請求書個別発行,確定済み,10171213,0,0,20200131,末日締め 翌月末日,202002,末日,支払先マスター通り,0,20190108,承認,20200108,パンダ,20200108,0
    100836,りんご部,100836,りんご部,1372,みかん（西日本）,35522,みかん（西日本）,1545557,3,20200101,9999,めろん,,,20190108,売仕,26709,管理部（バナナ）,どすこい,513752,にんじん株式会社,10005779,にんじん株式会社　多度津工場,513752,にんじん株式会社,10005779,にんじん株式会社　多度津工場,60055597,株式会社ラーメン,60210923,株式会社ラーメン,60055597,株式会社ラーメン,60017359,株式会社ラーメン,6,610,10,144,ティッシュ,42005,加工賃,赤黒,0,高くて,101,,37,37,外税8%,2.96,自動計算,7,11,外税8%,0.88,自動計算,0,,0,0,0,0,0,,,,0,,0,0,,,,,,1,10232182,20200229,請求先マスター通り,末日,20200131,専用請求書,請求書個別発行,確定済み,10171213,0,0,20200131,末日締め 翌月末日,202002,末日,支払先マスター通り,0,20190108,承認,20200108,パンダ,20200108,0
    100836,りんご部,100836,りんご部,1370,みかん（東日本）,35520,みかん（東日本）,1545558,1,20200101,9999,めろん,,,20190108,売仕,26709,管理部（バナナ）,どすこい,513752,にんじん株式会社,60219220,にんじん株式会社　調達部包材チーム,513752,にんじん株式会社,60126962,にんじん株式会社　調達部包材チーム,60055597,株式会社ラーメン,60210923,株式会社ラーメン,60055597,株式会社ラーメン,60017359,株式会社ラーメン,6,610,10,144,ティッシュ,42005,加工賃,赤黒,0,大変,102,,38,38,外税8%,3.04,自動計算,8,12,外税8%,0.96,自動計算,0,,0,0,0,0,0,,,,0,,0,0,,,,,,1,10232182,20200229,請求先マスター通り,末日,20200131,専用請求書,請求書個別発行,確定済み,10171214,0,0,20200131,末日締め 翌月末日,202002,末日,支払先マスター通り,0,20190108,承認,20200108,パンダ,20200108,0
    100836,りんご部,100836,りんご部,1370,みかん（東日本）,35520,みかん（東日本）,1545558,2,20200101,9999,めろん,,,20190108,売仕,26709,管理部（バナナ）,どすこい,513752,にんじん株式会社,60219220,にんじん株式会社　調達部包材チーム,513752,にんじん株式会社,60126962,にんじん株式会社　調達部包材チーム,60055597,株式会社ラーメン,60210923,株式会社ラーメン,60055597,株式会社ラーメン,60017359,株式会社ラーメン,6,610,10,144,ティッシュ,42005,加工賃,赤黒,0,だね,103,,39,39,外税8%,3.12,自動計算,9,6,外税8%,0.48,自動計算,0,,0,0,0,0,0,,,,0,,0,0,,,,,,1,10232182,20200229,請求先マスター通り,末日,20200131,専用請求書,請求書個別発行,確定済み,10171214,0,0,20200131,末日締め 翌月末日,202002,末日,支払先マスター通り,0,20190108,承認,20200108,パンダ,20200108,0
    100836,りんご部,100836,りんご部,1370,みかん（東日本）,35520,みかん（東日本）,1545558,3,20200101,9999,めろん,,,20190108,売仕,26709,管理部（バナナ）,どすこい,513752,にんじん株式会社,60219220,にんじん株式会社　調達部包材チーム,513752,にんじん株式会社,60126962,にんじん株式会社　調達部包材チーム,60055597,株式会社ラーメン,60210923,株式会社ラーメン,60055597,株式会社ラーメン,60017359,株式会社ラーメン,6,610,10,144,ティッシュ,42005,加工賃,赤黒,0,わわわ,104,,40,40,外税8%,3.2,自動計算,10,7,外税8%,0.56,自動計算,0,,0,0,0,0,0,,,,0,,0,0,,,,,,1,10232182,20200229,請求先マスター通り,末日,20200131,専用請求書,請求書個別発行,確定済み,10171214,0,0,20200131,末日締め 翌月末日,202002,末日,支払先マスター通り,0,20190108,承認,20200108,パンダ,20200108,0
    
[/code]

２、次にデータ結合を試みました

[code]

    import os
    import glob
    import csv
    import pandas as pd
    DATA_PATH = r'C:\Users\t\anaconda\t\001urishi_sousa\jyuretsu' + '\\'
    All_Files = glob.glob('{}*.csv'.format(DATA_PATH))
    print (All_Files)
    
[/code]

無事、結合したいファイルの一覧が表示されました。

[code]

    ['C:\\Users\\t\\anaconda\\1t\\001urishi_sousa\\jyuretsu\\2012USINPCSV_10249667.csv', 'C:\\Users\\t\\anaconda\\1t\\001urishi_sousa\\jyuretsu\\2013USINPCSV_10249668.csv', 'C:\\Users\\t\\anaconda\\1t\\001urishi_sousa\\jyuretsu\\2014USINPCSV_10249669.csv', 'C:\\Users\\t\\anaconda\\1t\\001urishi_sousa\\jyuretsu\\2015USINPCSV_10249670.csv', 'C:\\Users\\t\\anaconda\\1t\\001urishi_sousa\\jyuretsu\\2016USINPCSV_10249671.csv', 'C:\\Users\\t\\anaconda\\1t\\001urishi_sousa\\jyuretsu\\2017USINPCSV_10249672.csv', 'C:\\Users\\t\\anaconda\\1t\\001urishi_sousa\\jyuretsu\\2018USINPCSV_10249673.csv', 'C:\\Users\\t\\anaconda\\1t\\001urishi_sousa\\jyuretsu\\2019USINPCSV_10249674.csv', 'C:\\Users\\t\\anaconda\\1t\\001urishi_sousa\\jyuretsu\\202001-07USINPCSV_10249675.csv']
    
[/code]

* * *

３、問題は次です。

[code]

    list = []
    for filename in All_Files:
        df = pd.read_csv(filename, header=None,delimiter=" ")
        list.append(df)
    print (list)
    df = pd.concat(list, sort=False)
    df.to_csv('<*>.csv', encoding='CP932')
    
[/code]

４、エラーメッセージです。

[code]

    ---> 16     df = pd.read_csv(filename, header=None,delimiter=" ")
    
[/code]

最下部のメッセージです。

[code]

    ParserError: Error tokenizing data. C error: Expected 1 fields in line 2, saw ```
    
[/code]


CC BY-SA 4.0
2020-08-25T12:53:49.573
69867
2023-11-03T14:05:10.683
2020-08-25T15:38:41.947
3060
question
python pandas
Pandasで複数ファイルの結合時にエラー ParserError: Error tokenizing data. C error: Expected 1 fields in line 2, saw 2


実際のcsvファイルデータを見ると複数行headerでは無いようなので、header関連の工夫は要らないですね。  
`.read_csv`の行は以下のようにすれば良いでしょう。

[code]

    df = pd.read_csv(filename, header=0, keep_default_na=False, na_values=None, encoding='CP932')
    
[/code]

`.to_csv`の方は出力パスの明確化なども含めて以下のようにすれば良いでしょう。

[code]

    OUTPUT_PATH = '.\\' #### 出力ファイル用パスを設定。例ではカレントフォルダ
    df.to_csv(OUTPUT_PATH + 'total.csv', index=False, encoding='CP932')
    
[/code]


CC BY-SA 4.0
2020-08-25T15:49:46.123
69872
2020-08-25T15:49:46.123
26370
69867
answer


実際のデータが `,` (カンマ) 区切りにも関わらず、読み取りを行うコードでは `delimiter=" "`
のように空白をデリミタとして指定しているので `read_csv` でエラーになっているのではないでしょうか？

**現状のコード (抜粋):**

[code]

    df = pd.read_csv(filename, header=None,delimiter=" ")
    
[/code]

デフォルトの区切り文字は `,` で処理するはずなので、引数の `delimiter` (または `sep`) は不要だと思われます。

仮に空白区切りとして CSV
のデータを見ると、ヘッダに当たる1行目には空白がありませんが、2行目以降は空白が含まれるため列数が合わなくなっているように見えます。


CC BY-SA 4.0
2020-08-25T15:54:52.523
69873
2020-08-25T15:59:54.437
2020-08-25T15:59:54.437
3060
3060
69867
answer