python - ValueError:DataFrame 的真值对于条件 if 语句不明确
问题描述
我在使用数据框存储库存数据并根据列是否包含字符串(“abc”)和状态是否为“可用”创建条件 if 语句时遇到问题。同一类型的项目可能有多行,所以我认为这是问题的一部分,但不确定如何处理。如果项目名称等于包含的字符串并且状态可用,我只想发送电子邮件通知。
mergedf = pd.merge(df, df2)
item1 = mergedf[mergedf['name'].str.lower().str.contains("item1") & mergedf['status'].str.lower().str.contains("available")]
item2 = mergedf[mergedf['name'].str.lower().str.contains("item2") & mergedf['status'].str.lower().str.contains("available")]
item3 = mergedf[mergedf['name'].str.lower().str.contains("item3") & mergedf['status'].str.lower().str.contains("available")]
item4 = mergedf[mergedf['name'].str.lower().str.contains("item4") & mergedf['status'].str.lower().str.contains("available")]
print(item1)
print(item2)
with open ("recipientlist.txt", "r+") as f:
email_list = [line.strip() for line in f]
for email in email_list:
if email == "abc@gmail.com" and item1 or item2:
send_email()
print("email sent!")
elif email == "xyz@gmail.com" and item3 or item4:
send_email()
print("email sent!")
else:
print("no emails sent, nothing in stock")
Empty DataFrame
Columns: [sku, name, price, manufacturer, status, url, status check]
Index: []
sku ... status check
0 134463 ... True
Traceback (most recent call last) ValueError: DataFrame 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
解决方案
推荐阅读
- objective-c - 如何在 Swift 中添加 RNCryptor
- javascript - 数据表内置按钮固定位置
- crystal-reports - Crystal Reports 2016 交叉表根据条件可用的指定列的值抑制行
- javascript - 手机拖拽问题
- python - 在非常大的 numpy 数组中更快的中位数
- python - 如何在python中将以0开头的十六进制字符串转换为具有一定长度的字节
- javascript - 如何使用本地存储在刷新时保存当前选项卡
- python - 给定 2 个时间序列,创建一个列并向前填充一些日期
- mongodb - MongoDB - 比较数组对象的字段
- java - 参数不变时,Java 或 JIT 编译器是否优化 Arrays.asList?