【发布时间】:2019-12-20 05:17:03
【问题描述】:
我想知道是否可以检查两个表之间的计算结果是否可以与比较运算符一起使用。
假设我有两个数据框。
DF
| user_id | col1| col2| col3| col4| check |
|---------|-----|-----|-----|-----|-------|
| 100 | 1 | 2 | 1 | 0 | 5 |
| 200 | 2 | 4 | 0 | 2 | 5 |
DF2
| user_id | col1| col2| col3| col4| check |
| 300 | 3 | 6 | 2 | 0 | 5 |
| 400 | 4 | 8 | 0 | 4 | 5 |
对于 df 中的每个用户,我会遍历 df2 中的每个用户。然后我想添加它们的 col1 值,看看它们是否大于数字 5。如果是,则应返回“大于 5”。如果不是,则应返回“小于 5”。
这就是我想象的语法,但它不起作用。
for a in df.user_id:
for b in df2.user_id:
if df.col1 + df.col2 > df.check:
print('Greater than 5')
else:
print('Less than 5')
我得到一个 ValueError:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
这背后的逻辑是什么,将迭代项与单值进行比较如何工作?
此外,除了静态值与可迭代系列之外,在 for 循环中使用 df.check 列值与 int(5) 是否有区别?这有什么效果?
谢谢!
【问题讨论】:
标签: python python-3.x pandas for-loop