- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如果我单独使用以下任何条件,它就会按预期工作。 (有关所有条件,请参阅更大的代码块)。当我期望 (df['ColumnName'] == 'This Value').any():
触发时,我确实会打印以下异常
。
打印异常 'ColumName2'
这会打印 3 次,这样就告诉我满足了其中一个条件,它只是没有触发:$
独立工作
if filename.endswith('.csv'):
print 'File is CSV'
df = pd.read_csv(os.path.join(root,filename), skip_blank_lines=True)
try:
if (df['ColumnName'] == 'This Value').any():
final_df = df.drop(df.ix[df['ColumnName'] == 'This Value'].index)
data = final_df.sort(ascending=True)
data.to_csv(os.path.join(root, "Edit.csv"), index=False, na_rep="NA")
except Exception as e:
print e
但是当在更大的 if
、elif
、else
中使用时,似乎都不起作用(甚至 else 也没有被命中)。语法似乎是正确的,而且我在 StackOverflow 上看到的答案似乎都没有涵盖这一点。没有一个条件是相同的,所以没有看到任何问题,我不完全确定是什么导致了问题。
较大的 if、elif、else
if filename.endswith('.csv'):
df = pd.read_csv(os.path.join(root,filename), skip_blank_lines=True)
try:
if (df['ColumnName'] == 'That Value').any():
print 'ColumnName and "That Value"'
final_df = df.drop(df.ix[df['ColumnName'] == 'This Value'].index)
data = final_df.sort(ascending=True)
data.to_csv(os.path.join(root, "Edit.csv"), index=False, na_rep="NA")
elif (df['ColumnName2'] == 'This Value').any():
print 'ColumnName2 This Value'
final_df = df.drop(df.ix[df['ColumnName2'] == 'This Value'].index)
data = final_df.sort(ascending=True)
data.to_csv(os.path.join(root, "Edit.csv"), index=False, na_rep="NA")
elif ((df['ColumnName2']=='That Value')).any():
print 'ColumnName2 That Value'
final_df = df[df['Dst Port'] != 'Any']
data = final_df.sort(ascending=True)
data.to_csv(os.path.join(root, "Edit.csv"), index=False, na_rep="NA")
elif ((df['ColumnName']=='This Value')).any():
print 'ColumnName This Value'
final_df = df[df['Service'] != 'Any']
data = final_df.sort(ascending=True)
data.to_csv(os.path.join(root, "Edit.csv"), index=False, na_rep="NA")
else:
print 'No Filtering Applied'
data = df.sort(ascending=True)
data.to_csv(os.path.join(root, "Edit.csv"), index=False, na_rep="NA")
except Exception as e:
print e
修复感谢 AnandSKumars 评论
if filename.endswith('.csv'):
try:
df = pd.read_csv(os.path.join(root,filename), skip_blank_lines=True)
if 'ColumnName' in df and (df['ColumnName'] == 'This Value').That Value():
print 'Service and This Value'
final_df = df.drop(df.ix[df['ColumnName'] == 'This Value'].index)
data = final_df.sort(ascending=True)
with open(os.path.join(root,'Edit.csv'), 'a') as f:
data.to_csv(f, index=False, na_rep="NA")
os.remove(os.path.join(root, filename))
elif 'ColumnName2' in df and (df['ColumnName2'] == 'This Value').That Value():
print 'ColumnName2 and This Value'
final_df = df.drop(df.ix[df['ColumnName2'] == 'This Value'].index)
data = final_df.sort(ascending=True)
with open(os.path.join(root,'Edit.csv'), 'a') as f:
data.to_csv(f, index=False, na_rep="NA")
os.remove(os.path.join(root, filename))
elif 'ColumnName2' in df and ((df['ColumnName2']=='That Value')).That Value():
print 'ColumnName2 and That Value'
final_df = df[df['ColumnName2'] != 'That Value']
data = final_df.sort(ascending=True)
with open(os.path.join(root,'Edit.csv'), 'a') as f:
data.to_csv(f, index=False, na_rep="NA")
os.remove(os.path.join(root, filename))
elif 'ColumnName' in df and ((df['ColumnName']=='That Value')).That Value():
print 'Service and That Value'
final_df = df[df['ColumnName'] != 'That Value']
data = final_df.sort(ascending=True)
with open(os.path.join(root,'Edit.csv'), 'a') as f:
data.to_csv(f, index=False, na_rep="NA")
os.remove(os.path.join(root, filename))
else:
os.remove(os.path.join(root, filename))
except Exception as e:
print e
最佳答案
问题很可能是您有一些 csv 文件,但该 csv 文件中没有某些列。因此,将其读入数据帧后,当您尝试执行 df['ColumnName']
时,会出现错误 - KeyError: 'ColumnName'
。这表明 DataFrame 中不存在 'ColumnName'
。
但是一旦发生错误,它就会被 try..except
block 捕获,因此不会出现任何其他 if
或 elif
条件火灾,因此您看不到输出。
如果您只想满足其中一个条件,那么您可以检查您尝试获取的列是否是 df 的一部分。示例-
if 'ColumnName' in df and (df['ColumnName'] == 'That Value').any():
其他 if
条件也类似。
关于python - 奇怪的 If、Elif、Else 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32967619/
这个问题在这里已经有了答案: Does an else if statement exist? (2 个答案) 关闭 4 年前。 相信大家在学习C的时候,都学过这样的语法: if (conditio
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
Java 11.6 在这个 BMI 计算器中,它将输入人的体重、高度并计算 BMI。 BMI 计算正确,但是在分类 BMI 方法中,程序会跳过 if 和 else if 检查,只打印出每次测试的“肥胖
我有以下代码,它根据 url 参数更改,然后隐藏表单上的选择选项。即 www.example.com?type=images 最终会有 20 多个不同的参数。我想知道比拥有大量 if else 更好的
在WikiPedia Binary Search 的文章中有一个名为Deferred detection of equality 的部分,其中介绍了二进制搜索的某种“优化”版本,如下所示: int b
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我在下面的代码中遇到错误。尝试了 if 和 elseif 的所有组合,但无法使其工作。 错误:未捕获的语法错误:意外的标记其他 if(disableAd == 0 && disableWeather
我是 Java 初学者,我正在做一些练习题来提高我的 Java 技能。 编写一个名为 season 的方法,该方法接受两个整数作为代表月份和日期的参数,并返回一个指示该月份和日期的季节的字符串。假设月
有没有可能在 JavaScript 中做这样的事情? if (name == 'foo') { exampleFunction('some_arg'); } else if (name ==
我有一段简单的代码来检查一些条件,我希望每个条件都产生一个唯一的输出,但如果没有满足条件,则产生另一个唯一的输出。 有什么方法可以创建仅在所有先前的 if 语句都失败时才触发的 else 吗?我知道下
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 8 年前。 Improv
我发现自己经常使用这样的模式: if (a > b) { foo(); } elseif (c > d) { bar(); } else { baz(); } 这里的要点是第二
Hive 使用 IF(条件,表达式,表达式),所以当我想做 if/else if/else if/else 时,我必须这样做: IF(a, 1, IF(b, 2, IF(c, 3, 4))) 有没有更
直到 if 和 else 具有共同的作用域: if (int x = foo()) { // .... } else if (int x = bar()) { // ... } else {
是否可以保证 if-else if-else if-else block 中的 ifs 会按照编写顺序进行测试。 我问这个是因为我经常尝试通过将最常见的情况放在首位来优化我的代码,我想知道编译器所做的
我有一个方法可以检查某些事情并根据这些检查返回一个 bool 值。它涉及一个单独的分支 If 部分,该部分按顺序检查大约 5 个条件。如果这些条件中的任何一个返回真,则该方法将返回真;。如果没有任何条
这个问题在这里已经有了答案: Yet Another Conditional Operator Nesting Question (2 个回答) Why is the conditional oper
有没有一种方法可以从一个事件运行多个 if else 语句?例如,尝试运行此命令,但它仅对类为“two”的元素执行第一个 if else,而不是对类为“三”的第二个元素执行。 $(".hamburge
我有一个类似这样的查询: SELECT SUM(`table`.points) AS total_points FROM table 这将返回类似这样的内容 | **points** |
我正在尝试对单选按钮组运行“存在检查”,以确定如果在组中选择了 2 个单选按钮中的 1 个(if 语句),如果选择了 2 个单选按钮中的另一个(否则 if语句)或者如果两者都没有选择(else 语句)
我是一名优秀的程序员,十分优秀!