我有一个csv文件,是否可以使用usecols除最后一列之外的所有列,read_csv而无需列出所需的每一列.
例如,如果我有一个13列文件,我可以这样做usecols=[0,1,...,10,11].做usecols=[:-1]会给我语法错误?
还有另一种选择吗?我正在使用pandas 0.17
您可以使用nrows=1获取cols 读取单行,然后通过从第一次读取切片列数组,在完整的csv中重新读取跳过最后一个col:
cols = pd.read_csv(file, nrows=1).columns
df = pd.read_csv(file, usecols=cols[:-1])
Run Code Online (Sandbox Code Playgroud)
从版本开始,pandas中0.20的usecols方法接受可调用的过滤器,即lambda表达式.因此,如果您知道要跳过的列的名称,则可以执行以下操作:
columns_to_skip = ['foo','bar']
df = pd.read_csv(file, usecols=lambda x: x not in columns_to_skip )
Run Code Online (Sandbox Code Playgroud)
这是文档参考.