【发布时间】:2018-07-25 10:32:30
【问题描述】:
我有一个数据框,我需要对其进行过滤。我正在使用
for i in values:
df = df[df['name'] == i]
print(df)
这里我得到空的数据框。但是如果我使用df = df[df['name'] == 'manualentryofname'] 就可以了。但是values 是一个名称列表,我需要根据它过滤数据框并执行一些操作。
【问题讨论】:
-
for循环不只是为了过滤..我根据for循环的i值在此下进行了一些操作
-
对于你的问题,如果
values包含name它应该可以工作。 -
因为第一次迭代后它只包含第一个 i 值,第二次迭代后它会返回空数据框
-
如果您只想在值列表中保留值,则使用@zipa 解决方案,如果您真的想在循环中使用,则不要再次将中间结果存储在 df 中,将中间结果保留在 temp valriable然后尝试附加下一个交互结果,它应该可以工作
标签: python pandas for-loop dataframe