假设我有一个包含400列的csv文件.我无法将整个文件加载到DataFrame中(不适合内存).但是,我只想要50列,这将适合内存.我没有看到任何内置的Pandas方式来做到这一点.你有什么建议?我愿意使用PyTables接口或pandas.io.sql.
最好的情况是像pandas.read_csv(....,columns = ['name','age',...,'income'])这样的函数.即我们传递将要加载的列名(或数字)列表.
Wes*_*ney 28
Ian,我实现了一个usecols完全符合你描述的选项.它将在即将到来的熊猫0.10; 开发版即将推出.
既然0.10,你可以使用usecols喜欢
df = pd.read_csv(...., usecols=['name', 'age',..., 'income'])
Run Code Online (Sandbox Code Playgroud)
目前没有默认方法可以执行此操作。我建议对文件进行分块并迭代它并丢弃您不需要的列。所以像pd.concat([x.ix[:, cols_to_keep] for x in pd.read_csv(..., chunksize=200)])
| 归档时间: |
|
| 查看次数: |
5356 次 |
| 最近记录: |