前提・実現したいこと
python3.8で前回質問させていただいた[Python3]Excel表の中からfilterで取り出したものを日付別にして個数を合計したいのデータを統計表にまとめたいと思っております。
上記リンクのpandasで「備品ごとにいつ何個消費したかのデータ」を以下進捗管理表.xlsx(横軸は2021年度の12月まで)の日付に合わせて自動入力を行いたいのですが,備品名と日付指定をしてopenpyxlでの入力部分がわからないためお時間あればお力添えいただければと思います。
該当のソースコード
以下は上記リンクで解決したコードです。
import pandas as pd import openpyxl as px df = pd.read_excel('出庫履歴の表.xlsx', sheet_name='Sheet1') Aall = df[df['備品名'].values == 'aaa'].groupby(['日付']).sum().drop(['備品個数'], axis=1) print(Aall)
以下は日ごとにまとめたaaaという備品の消費個数の合計です。
Run
1 消費個数 2日付 32021-01-07 4 42021-01-08 4 52021-01-12 3 62021-01-13 1
上記の日付とExcel統計表の日付が一致,aaaの行にaaa消費個数の合計を
Aall部分はaaaという備品がいつ何個使用されたかをまとめたデータです。
これを進捗管理表.xlsxの該当セルにあてはめたいのですが,日付と備品名に考慮したセル指定の方法を自分なりに調べてもわかりませんでした。
試したこと
日付のみのデータをAall2としてセル中にそれがあるかどうかを調べようとしたが以下のエラーが出ました。
wb = px.load_workbook('進捗管理表.xlsx') ws = wb["進捗管理表"] A3_COL = 1 A3_ROW = 1 A8_COL = 367 A8_ROW = 1000 # 範囲データを順次処理 for row in ws.iter_rows(min_col=A3_COL, min_row=A3_ROW, max_col=A8_COL, max_row=A8_ROW): for cell in row: # 該当セルの値取得 cell_value = cell.value # 日付がセル中にあるかどうか wb.close()
run
1 if Aall2 in cell_value: 2TypeError: 'in <string>' requires string as left operand, not DataFrame
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/25 00:34
2021/01/25 15:56
2021/01/26 00:12