我有一个数据文件(CSV),其中某些行被错误地分开了。例如,我有一个" Date"标题,其中唯一的字符串应该是一周中的几天,但有时会在此标题下的数据文件的其他部分中添加字符串。如果删除它们,我不需要担心弄乱数据,因此我想删除这些行,只要该列中的数据不是一周中的某一天。我该怎么做?
答案 0 :(得分:0)
我会用一个简单的脚本来解决这个问题。我将使用JS和NodeJS运行时来演示这一点,尽管您可以使用任何语言的方法。
我假设您可以在R中编写这样的脚本,但您可以使用任何您喜欢的语言来生成已清理的CSV。我只是想证明这个概念。
此脚本将解析CSV的每一行,并通过拆分CSV分隔符来确定日期字段是否包含一周中的有效日期。如果是,它会将该行附加到新的csv。
假设data.csv中的csv数据集看起来像这样:
汽车;星期一; \ n 球;蝙蝠; \ n 放置;星期三;
要解析此节点的节点脚本如下:
const fs = require('fs')
const file = fs.readFileSync('./data.csv', 'utf8')
const cleanedFile = './cleaned.csv'
file.split('\n').forEach(row => {
const daysOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'etc...']
const fields = row.split(';')
const day = fields[1]
if (daysOfWeek.includes(day)) {
fs.appendFile(cleanedFile, `${row}\n`, (err) => {
if (err) throw new Error('There was a problem appending to the file')
})
}
})
这将生成一个名为cleaning.csv的新csv,它看起来像:
汽车;星期一; \ n 放置;星期三;