Python Jupyter Notebookにてデータクリーニングを行っております。
複数のxlsxを読み込みデータフレームを作成したいです。
読み込んだxlsx名をデータフレームに記述したいのですが、煮詰まっています。
例えば、とあるフォルダに格納されている
- data01.xlsx
- data2.xlsx
- data10.xlsx
- data17.xlsx
を読み込み一つのデータフレーム(例:df)にしたい
python
1datafiles = glob.glob("data/sample/*.xlsx") 2df = [pd.read_excel(datafiles[i], parse_dates=[0]) for i in range(len(datafiles))] 3 4# 結合 5df_main= pd.concat(df, ignore_index=True) 6 7#ファイル名取得 8import os 9file_name = os.path.basename(datafiles[1]) 10file_name 11#OUT:data01.xlsx 12
で結合はできました。
データとして、書くエクセルの行に空白があるため、結合するとNaNが含まれます。
ID | name | area | ・・・ |
---|---|---|---|
10 | 佐藤 | 東京都 | |
NaN | NaN | NaN | |
21 | 田中 | 千葉県 | |
34 | 高山 | 栃木県 | |
55 | 斎藤 | 東京都 | |
NaN | NaN | NaN | |
NaN | NaN | NaN | |
100 | 山田 | 神奈川県 | |
120 | 山田 | 神奈川県 | |
NaN | NaN | NaN | |
181 | 山田 | 神奈川県 |
・
・
・
<<求めるdf>>
|ID|xlsx|name|area|・・・
|:--|:--:|--:|--:|
|10|data01.xlsx|佐藤|東京都|
|21|data01.xlsx|田中|千葉県|
|34|data02.xlsx|高山|栃木県|
|55|data02.xlsx|斎藤|東京都|
|100|data02.xlsx|山田|神奈川県|
|120|data10.xlsx|山田|神奈川県|
|181|data17.xlsx|山田|神奈川県|
・
・
・
エクセル数は固定ではありません。列・行ともに各エクセルで異なります。
アドバイスいただけたら幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/27 16:04