【发布时间】:2021-09-29 19:54:27
【问题描述】:
我在下面有一个数据框,想在特定条件下逐列检查每个数字。
import pandas as pd
df = pd.DataFrame([[10,3,1], [3,7,2], [2,4,4]], columns=list("ABC"))
如果列中的任何一个单元格按列满足特定条件。然后我会相应地执行一些代码。
if (df['A'] > 8) | (df['B'] > 6) | (df['C'] > 5):
print(df.loc[: 'A']) #print function here is just an example
错误信息说:
alueError: Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
如何解决我的 IF 语句来执行打印代码?
【问题讨论】:
-
(df['A'] > 8) | (df['B'] > 6) | (df['C'] > 5)是一个类似[True, True, False]的系列。所以没有一个真值/假值,这就是为什么它是模棱两可的。你想要 True 如果所有这些都应该是真的((df['A'] > 8) | (df['B'] > 6) | (df['C'] > 5)).all()或者 True 是至少其中一个是真的像((df['A'] > 8) | (df['B'] > 6) | (df['C'] > 5)).any() -
感谢您的详细解释。我将使用 .any() 来解决我的问题。
标签: python dataframe if-statement conditional-statements