我有一个具有10000列的大数据框架,我想选择其子集。我正在使用的是
newdf = df[[column for column in df if "exclude_me" is not in column]]
但这需要数小时才能计算。是否有更快的解决方法,例如将其转换为矩阵或使用numpy?
无需更多信息或运行的数据集,这是一个猜测游戏是该问题是从收集列名来收集列名还是切成数据框架。由于切片应与Pandas快速,我会首先查看列计算。
这应该给您相同的结果,但对于大量列可能会更快:
columns = list(val for val in my_dataframe.columns.values if "exclude_me" is not in val)
newdf = df[columns]
有趣的是,使用iLoc的位置索引,而不是名称更快
newdf= df.iloc[:,[ind for ind,col in enumerate(df.columns) if "exclude_me" not in col]]