前提
Pythonのpandasで商品と賞味期限が書かれたExcelファイルを読み込み、今日より前の日付のものがあればポップアップで警告してくれるプログラムを作りたい。
実現したいこと
①Excel読み込み⇒②datetime関数で日付取得⇒③if文などでアウトプット。現在③で躓いているため質問いたしました。
賞味期限切れの対象商品を絞りたいのではなく、単にExcel(df)上のデータに賞味期限切れがあるかどうかをデスクトップに出したいと考えています。
該当のソースコード
import pandas as pd from datetime import datetime import tkinter #①サンプルdf(本来はExcel読み込み) df = pd.DataFrame( data={'商品名': ['A', 'B', 'C', 'D', 'E'], '賞味期限': ['20220616', '20220715', '20220815', '20220512', '20220624']} ) #datetime型に変更 df1["賞味期限"] = pd.to_datetime(df1["賞味期限"]) #②本日の日付を確認 t = datetime.now() today = t.strftime('%Y%m%d')
発生している問題・エラーメッセージ
#③ポップアップを表示させる if df1["賞味期限"] <= today: tkinter.messagebox.showinfo('連絡', '賞味期限切れは存在しません') else: tkinter.messagebox.showinfo('警告', '賞味期限切れが存在します') --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-27-d0a985f9856d> in <module> ----> 1 if df1["賞味期限"] <= today: 2 tkinter.messagebox.showinfo('連絡', '賞味期限切れは存在しません') 3 4 else: 5 tkinter.messagebox.showinfo('警告', '賞味期限切れが存在します') ~\anaconda3\lib\site-packages\pandas\core\generic.py in __nonzero__(self) 1327 1328 def __nonzero__(self): -> 1329 raise ValueError( 1330 f"The truth value of a {type(self).__name__} is ambiguous. " 1331 "Use a.empty, a.bool(), a.item(), a.any() or a.all()." ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
質問内容
エラー内容や打開策をネットで調べましたが、そもそもif文内にdfやseriesを入れることは出来ないのでしょうか。
また出来ないならば、for文などで一つ一つ条件にあうか確認する必要があるのでしょうか。
if文で対応出来ない場合の代替案なども考えましたが、行き詰ったためアドバイスいただけますと幸いです。
補足情報
当方プログラム初心者であるため、不備がありましたら申し訳ございません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/19 03:28