gpt4 book ai didi

Python-pandas : the truth value of a series is ambiguous

转载 作者:行者123 更新时间:2023-12-01 01:21:05 28 4
gpt4 key购买 nike

我目前正在尝试将 json 文件(我已经可以处理)中的值与 csv 文件中的值(这可能是问题)进行比较。我当前的代码如下所示:

for data in trades['timestamp']:
data = pd.to_datetime(data)
print(data)
if data == ask_minute['lastUpdated']:
#....'do something'

这给出:

":The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()."

我当前的 print(data) 如下所示:

2018-10-03 18:03:38.067000
2018-10-03 18:03:38.109000
2018-10-03 18:04:28
2018-10-03 18:04:28.685000

但是,我仍然无法将 CSV 文件中的这些时间戳与 Json 文件中的时间戳进行比较。有人有主意吗?

最佳答案

让我们将其简化为一个更简单的示例。例如,通过进行以下比较:

3 == pd.Series([3,2,4,1])

0 True
1 False
2 False
3 False
dtype: bool

您得到的结果是 bool 值的Series,其大小等于表达式右侧的pd.Series。所以这里实际上发生的是整数在整个系列中广播,然后对它们进行比较。所以当你这样做时:

if 3 == pd.Series([3,2,4,1]):
pass

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

您收到错误消息。这里的问题是您正在将 pd.Series 与一个值进行比较,因此您将有多个 True 和多个 False 值,如下所示在上述情况下。这当然是不明确的,因为条件既不是True也不是False

因此,您需要进一步聚合结果,以便从操作中生成单个 bool 值。为此,您必须使用 anyall取决于您是否需要至少一个(任何)或所有值来满足条件。

(3 == pd.Series([3,2,4,1])).all()
# False

(3 == pd.Series([3,2,4,1])).any()
# True

关于Python-pandas : the truth value of a series is ambiguous,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53830081/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com