比方说,我有一个包含数十或数百列的CSV,我只想提取2或3列。我了解here所述的colClasses
解决方案,但是代码变得非常难以阅读。
我想要pandas' read_csv
中的usecols
之类的东西。
加载所有内容并仅在事后选择不是一个解决方案(该文件太大,无法容纳在内存中。)
答案 0 :(得分:5)
一种方法是使用软件包gamma
。如果您知道SQL,则可以读入大文件,仅过滤所需的部分。
我将使用内置数据集tf.GraphKeys.TRAINABLE_VARIABLES
使该示例可重现,然后将其首先保存到磁盘。
tf.GraphKeys.UPDATE_OPS
现在是问题了。
参数sqldf
类似于iris
指令中的内容。
请注意write.csv(iris, "iris.csv", row.names = FALSE)
周围的反引号。这是由于列名中的点字符。
row.names
最后清理。
write.csv
答案 1 :(得分:4)
我将使用包data.table
,然后使用fread()
指定要通过参数select
或drop
保留/删除的列。来自?fread
选择要保留的列名称或数字的向量,其余部分删除。
drop要删除的列名或数字的向量,其余部分保留。
最好!