Help us understand the problem. What is going on with this article?

python3で多数のcsv連結

More than 1 year has passed since last update.

はじめに

タイトル通りです。
pythonである必要性はないのですが、

csvデータ複数取得 → pythonでcsv連結 → Jupyterでクラスタリング
csvデータ複数取得 → pythonでcsv連結 → 自然言語処理

等、開発環境をいちいち変えないようにできたらデータ管理しやすいですし、ある程度スムーズに作業できます。

前準備

今回は協調フィルタリング用に準備したファイルを使います。1列目に利用者ID、2列目は分解したコメントデータで構成されています。
1.png

フォルダの場所は実行pythonファイルと同じディレクトリにある前提です。
main/
 ├ csvフォルダ/
 └ 実行pythonファイル/

# -*- coding: utf-8 -*-
import os
import glob
import csv
import pandas as pd

# フォルダ中のパスを取得
DATA_PATH = "./<csvフォルダ名>/"
All_Files = glob.glob('{}*.csv'.format(DATA_PATH))

csv連結

# フォルダ中の全csvをマージ
list = []
for file in All_Files:
    list.append(pd.read_csv(file))
df = pd.concat(list, sort=False)

csv出力

わかりやすい名称を付けて結果をcsv形式で出力します。

df.to_csv('<*>.csv', encoding='utf_8')

結果1

1.png
1.png

自動的に'Unnamed: 0'という列が追加されています。python特有の仕様か私にはわかりませんが、修正しておきましょう。

# フォルダ中の全csvをマージ
list = []
for file in All_Files:
    list.append(pd.read_csv(file))
df = pd.concat(list, sort=False)
del df['Unnamed: 0']

# csv出力
df.to_csv('comm_datas.csv', encoding='utf_8')

del df['Unnamed: 0']を出力コードの手前に追加しました。再度出力結果を確認します。

結果2

1.png

目的の列は削除されていますね。これにて完了です。

追記

出力されたデータですが、'utf_8'形式ですのでExcelで開くと当然文字化けします。そちらで確認したい場合にはエンコード形式を変えましょう。
一例:

# csv出力
df.to_csv('comm_datas.csv', encoding='utf_8_sig')
hmgien1469
[非エンジニア] 趣味でコード学習+webアプリ製作を行っています。現在フレームワーク+HTML/CSSの勉強がてらポートフォリオ作成に勤しんでいます。 [できる言語] python3 何か作成したら整理ついでに記事投稿してみます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした