python Excelシートデータが空っぽであれば処理をスキップ
Q&A
Closed
解決したいこと
pythonでExcelファイルの結合を実装しています。
結合したいExcelブックにはSheet1とSheet2というファイルがあります。
いずれかのSheetの中身が空であればエラーが立ちます。
if df.empty:などを使ってからであればスキップ処理をスキップしたいのですが、、、
発生している問題・エラー
ValueError: Length mismatch: Expected axis has 0 elements, new values have 43 elements
該当するソースコード
#!/usr/bin/env python
# coding: utf-8
# In[1]:
import pandas as pd
from glob import glob
import openpyxl
# ~$ファイルは削除すること https://qiita.com/ponsuke0531/items/906f029e74f829a9618a
# In[2]:
filepaths= glob('*期/**.xlsx')
new_filepaths = []
for filepath in filepaths:
if not '~$' in filepath:
new_filepaths.append(filepath)
# In[3]:
def extract(filepath):
df = pd.read_excel(filepath, sheet_name= 'Sheet1')
df2 = pd.read_excel(filepath, sheet_name= 'Sheet2')
df.columns=['構成品 No.',
'記述',
'オーダー 数量',
'出庫 数量',
'単位',
'オーダー数量 (2次単位)',
'出庫数量 (2次単位)',
'2次 単位',
'行 タイプ',
'有効 原料',
'顧客',
'要求 日付',
'構成 事業所',
'保管場所',
'ロット/ シリアル番号',
'出庫/ 入荷',
'仕入先',
'作業 順序番号',
'ロット 等級',
'ロット 濃度',
'メモ・ロット1',
'メモ・ロット2',
'下限 濃度',
'上限 濃度',
'部品表 タイプ',
'下限 等級',
'上限 等級',
'作業 仕損',
'出庫 コード',
'資材 状況',
'構成品 改訂',
'固定/変動',
'構成品 番号',
'構成品 第2品目番号',
'構成品 第3品目番号',
'単位原価',
'単位原価の一時変更',
'合計 原価',
'キー 会社',
'関連購買/受注 オーダー番号',
'関連オーダー・ タイプ',
'関連購買/受注 オーダー行番号',
'オーダー 番号'
]
df2.columns=['構成品 No.',
'記述',
'オーダー 数量',
'出庫 数量',
'単位',
'オーダー数量 (2次単位)',
'出庫数量 (2次単位)',
'2次 単位',
'行 タイプ',
'有効 原料',
'顧客',
'要求 日付',
'構成 事業所',
'保管場所',
'ロット/ シリアル番号',
'出庫/ 入荷',
'仕入先',
'作業 順序番号',
'ロット 等級',
'ロット 濃度',
'メモ・ロット1',
'メモ・ロット2',
'下限 濃度',
'上限 濃度',
'部品表 タイプ',
'下限 等級',
'上限 等級',
'作業 仕損',
'出庫 コード',
'資材 状況',
'構成品 改訂',
'固定/変動',
'構成品 番号',
'構成品 第2品目番号',
'構成品 第3品目番号',
'単位原価',
'単位原価の一時変更',
'合計 原価',
'キー 会社',
'関連購買/受注 オーダー番号',
'関連オーダー・ タイプ',
'関連購買/受注 オーダー行番号',
'オーダー 番号'
]
df=pd.concat([df, df2])
return df
# In[ ]:
df = extract(filepath)
# In[4]:
df = pd.DataFrame()
for filepath in new_filepaths:
_df = extract(filepath)
df = pd.concat([df, _df])
# In[6]:
df.to_excel('output/all_data_2.xlsx',index=False)
0 likes