我很难理解为什么Dataprep会为我试图从.csv文件导入的数值分配不匹配的值。
在我的Excel中,一切看上去都很正常:
但是在dataprep中,这就是我得到的值:
对于大多数高于1000的数字来说,似乎都是这样。
如何防止这种情况?我将文件另存为.csv
答案 0 :(得分:1)
这很可能是由于Excel中的原始格式(特别是“会计”和“逗号样式”数字格式会这样做,因为它证明货币符号或符号是格式的一部分)。在这种情况下,您还会注意到从Excel粘贴时包含前导和尾随空白字符。
Dataprep不会花太多时间为您考虑-在这种情况下,他们会以保守的角度为您提供原始数据,并让您决定是否需要重新格式化。
要确认Dataprep的行为不正常,您只需要在文本编辑器中打开CSV,您很可能会看到那些相同的带引号的字符串。当其他系统生成应用了数字格式的CSV(在CSV中将值用引号引起来的字符串)时,这也很常见。同样,任何包含逗号的文本列通常都会被引用(根据需要,因为这通常是定界符并且具有特殊含义)。
非常感谢,这是一个简单的解决方法。如果要将逗号作为十进制类型,还必须替换逗号。
接口:
生成的Wrangle脚本:
textformat col: col1 type: trimquotes
textformat col: col1 type: trimwhitespace
replacepatterns col: col1 with: '' on: ',' global: true
replacepatterns col: col1 with: '' on: /[^0-9.]/ global: true
在一个由不懂正则表达式的人组成的混合团队中,前者有时会更清晰,更不令人生畏,但在一个步骤中这样做会容易得多。