python - 如何将此 Python for 循环转换为列表理解?

标签 python loops pandas dataframe

我需要将此 for 循环转换为列表理解。此 for 循环迭代数据框,查找 'TL' 列的条目包含“J”和 'Ink' = 0 列的每一行,并删除整行:

for r in df.T:
    if 'J' in df.loc[r,'TL'] and df.loc[r,'Ink'] == 0:
        df.drop(r)
    else:
        continue

我已经尝试过了

df_clean = [
    df.drop(r) for r in df.T if 'J' in df.loc[r,'TL'] and df.loc[r,'Ink'] == 0
]

我收到一条错误消息

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

最佳答案

尝试:

df[~(df.TL.str.contains('J') & df.Ink.eq(0))]

关于python - 如何将此 Python for 循环转换为列表理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44662691/

相关文章:

python - 通过动态键名对字典进行分组并聚合Python中嵌套字典的一些键

javascript - 将带有类(及其底层元素)的现有 div 元素添加到 div

Python:Pandas - 对象到数据框中的字符串类型转换

python - 将 Pandas 中的一行输出到一个数组

python - 尝试创建应作为命令行脚本工作的自定义包时出现 ModuleNotFoundError

python - 我们如何使用 Python seaborn relplot 在所有子图中绘制垂直线?

python - C 到 Python : For loop

php - PHP foreach循环中的多个索引变量

python - 是否可以使用 Pandas 在数据框中的任意位置插入一行?

python - 在 Python 中切片列表列表