从DataFrame获取一个明确的布尔值-python3

时间:2019-11-05 09:49:23

标签: python-3.x dataframe module jupyter-notebook valueerror

我写了如下简单的代码,其中df_row是一个其中仅包含布尔值(True或False)的DataFrame。

DataFrame看起来像这样,

                     Load_Avg  Load_Avg_difference  WaterLevel(cm)  ...
TIMESTAMP                                                           
2016-06-25 05:00:00      True                False           False  ...

hold_id = []
for j, colname in enumerate(colnames):
    if df_row[colname].bool():
        hold_id.append(j)

        break

现在,我想通过按顺序检查布尔值来打破df_row中为True布尔值的情况。

我总是说错了

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

我用.bool()检查DataFrame是True还是False,对吗?我很困惑...

1 个答案:

答案 0 :(得分:0)

df_row[colname]返回一个序列。 bool函数返回单个元素PandasObject的布尔值。

因此,您不能在Pandas系列上调用bool函数。

如果要检查系列中的所有项目是否均为True,则可以使用 df_row[colname].all()

如果要检查系列中的任何一项是否为True,则可以使用 df_row[colname].any()