提高在python中选择数据帧子集的性能

时间:2017-09-28 19:47:20

标签: python dataframe

我有一个包含10000列的大型数据框,我想选择它的一个子集。我正在使用的是

newdf = df[[column for column in df if "exclude_me" is not in column]]

但这需要几个小时来计算。是否有更快的解决方法,如将其转换为矩阵或使用numpy?

2 个答案:

答案 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]]