概要
- pandasのread_csv時に、カラムが空欄の時にUnnamedで読み込んでしまう現象の回避方法
- pandasは0.24以上の機能を使用
問題
カラムに複数の空欄がある場合、Unnamedが勝手に入力されてしまう。
データフレームは、4行のカラムを含んでいる。
問題
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'
)
解決方法
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:, :]