首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除红宝石中CSV中的标题和第二列?

如何删除红宝石中CSV中的标题和第二列?
EN

Stack Overflow用户
提问于 2017-09-19 16:16:27
回答 5查看 2.1K关注 0票数 2

我有一个CSV,看起来是这样的:

代码语言:javascript
运行
复制
user_id,is_user_unsubscribed
131072,1
7077888,1
11010048,1
12386304,1
327936,1
2228480,1
6553856,1
9830656,1
10158336,1
10486016,1
10617088,1
11010304,1
11272448,1
393728,1
7012864,1
8782336,1
11338240,1
11928064,1
4326144,1
8127232,1
11862784,1

但我希望数据看起来像这样:

代码语言:javascript
运行
复制
131072
7077888
11010048
12386304
327936
...

对该怎么办有什么想法吗?我有33万排..。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-09-19 16:20:45

您可以将文件作为数组读取,并忽略第一行,如下所示:

代码语言:javascript
运行
复制
data = CSV.read("dataset.csv")[1 .. -1]

这样,您就可以删除标题。

对于该列,可以删除如下列:

代码语言:javascript
运行
复制
data = CSV.read("dataset.csv")[1 .. -1]
data.delete("is_user_unsubscribed")
data.to_csv # => The new CSV in string format

查看这个以获得更多信息:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html

http://ruby-doc.org/stdlib-2.0.0/libdoc/csv/rdoc/CSV.html

票数 3
EN

Stack Overflow用户

发布于 2017-09-19 16:39:43

我的建议是将文件中的一行读入字符串,然后用逗号拆分得到的字符串(有一个逗号分隔列)。

分裂Ruby字符串:https://code-maven.com/ruby-split

代码语言:javascript
运行
复制
require 'pp'
line_num=0
text=File.open('myfile.csv').read
text.each_line do |line|
textArray = line.split
textIWant = textArray[0]
line_num = line_num + 1
   print "#{textIWant}"
end

在这段代码中,我们打开一个文本文件,并逐行读取。通过从第一列(数组中的第零项)中选择文本,将每一行拆分成我们想要的文本,然后打印出来。

如果您不想要标头,当line_num =0时,添加一个If语句来不拾取数据。更好地使用unless

只要用新数据重写一个新文件就行了。

票数 1
EN

Stack Overflow用户

发布于 2017-09-19 16:54:02

最后我就这么做了。这个是犹太的吗?

代码语言:javascript
运行
复制
user_ids = []
[]
CSV.foreach("eds_users_sept15.csv", headers:true) do |row|
    user_ids << row['user_id']
 end
  nil
user_ids.count
322101

CSV.open('some_new_file.csv', 'w') do |c|
    user_ids.each do |id|
       c << [id]
    end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46305279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档