无法删除数据框 python 3 中的行。值错误:真值不明确

Posted

技术标签:

【中文标题】无法删除数据框 python 3 中的行。值错误:真值不明确【英文标题】:Cant delete rows in a dataframe python 3 . Value error: truth value ambiguous 【发布时间】: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 语句,因此它试图评估数组的真值,这是不明确的 【参考方案1】:

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

【讨论】:

以上是关于无法删除数据框 python 3 中的行。值错误:真值不明确的主要内容,如果未能解决你的问题,请参考以下文章

如何使用熊猫从另一个数据框 B 的列中删除包含特定数量值的数据框 A 中的行?

根据列值删除Python Pandas中的DataFrame行[重复]

在python中的数据框中计算与引用可变值的条件相匹配的行

按日期范围删除数据框中的行。

删除python中小于某个值的行

删除熊猫数据框中具有特定值的行[重复]