我有一个包含超过 400 列的数据框,我试图根据某些条件选择一个包含大约一半列的子 df。我已经将过滤后的列存储为列表,希望使用 for 循环来迭代它们并选择新的 df,但我只获取列表中的最后一列。
我的列表有 200 个过滤列。我使用了以下 for 循环:
for i in list: df1 = df[["col1", "col2"]] df2 = df[[i]] df1 = df1.join(df2)
我的最终结果应该由“col1”、“col2”和随后的 200 列组成,但我不断得到的输出是 3 列、“col1”、“col2”和第 200 列。
切勿重复加入列。这是低效的并且会使 DataFrame 碎片化。
假设您的列表名为
lst
,您应该这样做:
out = df[['col1', 'col2']+lst]