【发布时间】:2017-11-23 13:35:32
【问题描述】:
我需要将此 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:DataFrame 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
【问题讨论】:
-
你有没有尝试过?如果还没有,请尝试一下,如果需要帮助,请返回。如果有,请告诉我们。
-
您确定要列表理解吗?即使假设你可以让它工作,看起来你最终会得到一个 DataFrame 对象列表,
df.T中的每个r一个。无论如何,for循环有什么问题? -
我想使用列表解析,因为我正在使用的数据集非常庞大,而
for循环将永远运行。
标签: python loops pandas dataframe