python
1def multi_columns(data_frame): 2 df = data_frame.copy() 3 if type(df.columns) is not pd.MultiIndex: 4 return df 5 6 df = df.rename(columns=lambda x: x if not 'Unnamed' in str(x) else '') 7 df = df.reset_index() 8 9 cols = df.columns 10 copy_col = list(cols) 11 12 name_col = tuple([(name if name is not None else '') for name in cols.names]) 13 copy_col[0] = name_col 14 15 for i, col in enumerate(copy_col): 16 pack = [content for content in col if content != ""] 17 copy_col[i] = tuple(pack + ([""] * (len(col) - len(pack)))) 18 19 df.columns = pd.MultiIndex.from_tuples(copy_col) 20 cols.names = tuple([None for x in cols.names]) 21 return df
上記のコードの
python
1name_col = tuple([(name if name is not None else '') for name in cols.names])
この部分は何をしているのでしょうか?
dataframe.columns.namesをしてもFrozenList([None])と帰ってくるのみで,
どのような処理をしているのかわかりませんでした.
ここでそのままのソースが掲載されていて説明もある
https://qiita.com/noca/items/966f4c5ae5eee8195fe0
あなたの回答
tips
プレビュー