无法删除数据框 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 中的行?