LoginSignup
2
2

More than 1 year has passed since last update.

pandas csvファイルにある縦持ちデータを連続で読み込んで横持ちデータへ変換する。

Posted at

0. はじめに

pandasをつかって、複数のcsvファイルに入っている縦持ちデータを連続で読み込み、横持ちデータへ変換する方法についてまとめる。

  • 処理の概要 image.png

Step0. ライブラリの読み込み・データフレーム作成

Step1. データ読み込み
  ・ os.walkでメインディレクトリ内のcsvファイルを取得
  ・ pandas.read_csvで取得したcsvファイルを読み込む

Step2. データ積み上げ
  ・ pandas.concatで読み込んだcsvファイルを積み上げる
    (Step1を行いながらStep2の処理を実施)
Step3. 横持ち変換
  ・ pandas.pivot_tableで縦持ちになってるデータフレームを横持ちへ変換

ディレクトリ

Main_dir/
 ├ file1.csv
 ├ file2.csv
 └ file3.csv

Step0 ライブラリの読み込み・データフレーム作成

import pandas as pd
import os

df = pd.DataFrame()

Step1と2 データ読み込み・データ積み上げ

for foldername, subfolders, filenames in os.walk('/Main_dir'):
    pass
    for subfolder in subfolders:
        pass
        for filename in filenames:
            if filename.endswith('.csv'):
                read_df = pd.read_csv(filename)
                if df.empty:
                    df = read_df
                else:
                    df = pd.concat([df, read_df])
# ## Data
A i 1
A ii 2
A iii 3
B i 4
B ii 5
B iii 6
C i 7
C ii 8
C iii 9

Step3.横持ち変換

pivoted_df = pd.pivot_table(df, values ='Data', index = ['##'], columns=['#'])
## A B C
i 1 4 7
ii 2 5 8
iii 3 6 9


参考文献
Wes McKinney 著 瀬戸山雅人、小林儀匡、滝口開資 訳 (2018) Pythonによるデータ分析入門 第2版、オライリー・ジャパン、オーム社

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2