Pandas - 在设置dtype时选择DataFrame中的所有列

时间:2017-12-04 11:50:07

标签: python pandas dataframe

我想用熊猫做点什么似乎很难。我希望我错了

我想打开一个csv文件,将每列的dtype设置为int,除了我要删除的一列。 我现在不提前提供的名称和/或列数。 非int列始终出现在同一位置,每隔一列只有整数。

数据:

foo.csv:
a   b       c   d   e   f  g ...
1   700592  a   23 ... ... ...
2   808295  b   24 ... ...
3   106796  c   25 ...
4   166438  d   26 ...
5   172594  e   27 ...

我想做什么:

df = pd.read_csv(foo.csv, usecols=[0,1,3, ...], dtype=int)

我可以读取完整文件,删除非int列,并全局更改类型,但数据可能非常大,因此需要考虑速度和内存。

1 个答案:

答案 0 :(得分:0)

在传递给大熊猫之前,请使用np.loadtxt()

import numpy as np f = np.loadtxt("foo.csv", usecols=[0,1,2,4], dtype="int32") pd.DataFrame(f)

https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.loadtxt.html