我有一个包含10000列的大型数据框,我想选择它的一个子集。我正在使用的是
newdf = df[[column for column in df if "exclude_me" is not in column]]
但这需要几个小时来计算。是否有更快的解决方法,如将其转换为矩阵或使用numpy?
答案 0 :(得分:0)
如果没有更多的信息或数据集可以运行,它就是猜测游戏是来源于收集列名还是来自切片DataFrame。由于使用pandas进行切片速度很快,我首先要查看列计算。
这应该会给你相同的结果,但对于大量的列可能会更快:
columns = list(val for val in my_dataframe.columns.values if "exclude_me" is not in val)
newdf = df[columns]
答案 1 :(得分:0)
有趣的是,使用位置索引和iloc而不是名字的速度要快得多
newdf= df.iloc[:,[ind for ind,col in enumerate(df.columns) if "exclude_me" not in col]]