pandasのread_csvで帳票データを読み込むときに、ヘッダーが複数行あるせいでUnnamedという文字列が入ってしまい困ったことはありませんか?
今回は、read_csvで読み込んでもUnnamedが入らないようにする方法をご紹介します。
【世界で5万人が受講】実践 Python データサイエンス・オンライン講座
使用データ
- 例えば、下記のようなデータを想定しています。

問題:カラム名に複数空欄がある場合Unnamedが勝手に入る
- 下記のように普通に読み込むと、勝手にUnnamedが入力されてしまいます。
concat_df = pd.read_csv(r'**.csv', header=[0,1,2,3], keep_default_na=False, index_col=[0], parse_dates=[0], encoding='shift-jis', engine='python' )

解決方法:MultiIndexとしてカラム名を登録する
- read_csvでは、ヘッダを読み込まない
- MultiIndexとして、あとでカラム名を張り付ける
raw_df = pd.read_csv(r'**.csv', keep_default_na=False, # 空欄をNaで置き換えない header=None, # headerは指定しない index_col=[0], encoding='shift-jis', engine='python' ) # MultiIndex.from_frameを使用する。 # raw_dfの4行目までをカラムとしてMultiIndexを作り、raw_dfのカラムとして入力する raw_df.columns = pd.MultiIndex.from_frame(raw_df.iloc[:4, :].T) # カラム名とデータフレームの4行目までは重複するので削除する。 raw_df = raw_df.iloc[4:, :]
こんな感じでコードを書くと、下記のようにUnnamedを含まずにカラム名を設定することができます。

Amazon.co.jp: データ分析 python
Amazon.co.jp: データ分析 python
コメント