【问题标题】:Cant delete rows in a dataframe python 3 . Value error: truth value ambiguous无法删除数据框 python 3 中的行。值错误:真值不明确
【发布时间】:2018-08-31 04:40:50
【问题描述】:

我有一个 12 列的数据框,其中一列只是布尔值;显示是否满足给定条件(取决于其他列)。该列称为“常态”。仅当之前的行和之后的行为 True 时,我才尝试删除 False 值的行。

for s in range((dfm['normality'].count())):
    if dfm.loc[[s],('normality')] == False:
       if ((dfm.loc[[s+1],('normality')]) == True) & ((dfm.loc[[s-1],('normality')]) == True):
        dfm=dfm.drop(dfm.index[s])
else:
    ;

我曾尝试使用此代码,但我不断收到错误:

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

在第 7 行(第一个 if 语句)。

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 您能分享一下您的数据是什么样的吗?
  • 您将 pandas 系列传递给 if 语句,因此它试图评估数组的真值,这是不明确的

标签: python python-3.x if-statement boolean valueerror


【解决方案1】:

那是因为您的行索引器是一个列表:if dfm.loc[[s],('normality')] == False:。 您应该在没有列表的情况下进行索引:if dfm.loc[s,'normality'] == False:

【讨论】:

    猜你喜欢
    • 2020-06-10
    • 2014-10-28
    • 2022-10-05
    • 2018-01-11
    • 2021-06-27
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2021-09-01
    相关资源
    最近更新 更多