koji/メガネ男の日誌

日々の学び、活動状況を記録します。仕事のことは少なめ。

読み込んだcsvファイルのカラムが2列以上になっている場合の前処理

実務で扱うcsvデータというのは、カタチがキレイでないことが多々あります。

つい最近、次のようなデータを見かけました。

f:id:kj_man666:20200402233444p:plain

・・・カラムが2段になっている・・・

このままではxx1とかxx2とか、無意味な項目がカラムになってしまうし、意味のない行(項目1、項目2等)が入ってしまっている・・・。

どう処理したものか、頭をひねりました。。。

index 1 をコピーして columns を置換する?

あれこれやって、シンプルな回答を得ました。

# ライブラリ
import pandas as pd
import os

# 現在のフォルダのパスを取得
path = os.getcwd() + "/"
path

# read_csv() のパラメーターに、header=1 を追加
pd.read_csv(path + "sample.csv", header=1)

これで index 1 (上から2番目) の項目をカラムとして設定することができました。

f:id:kj_man666:20200402234102p:plain

なお、余談ですが、先ほどのsample.csvは以下のように作成しています。

こちらもご参考ください。

# カラムに相当する項目が2段になっているDataFrame型を作成
df = pd.DataFrame({'分類': ['項目1', 10, 32, 55],
                   'xx1': ['項目2', 45, 78, 9],
                   'xx2': ['項目3', 6, 1, 13],
                   'xx3': ['項目4', 15, 38, 51]})

# sample.csv というcsvファイルを作成
df.to_csv(path + "sample.csv", index=False)

以上になります、最後までお読みいただきありがとうございました。

参考サイト様

note.nkmk.me