【问题标题】:Deedle - comma decimal delimeter in CSVDeedle - CSV 中的逗号小数分隔符
【发布时间】:2020-08-18 16:06:47
【问题描述】:

尝试使用 deedle (Frame.ReadCsv) 加载 CSV 文件,但我在浮点字段中使用逗号作为十进制分隔符,因此它们被读取为整数(忽略逗号)。

有没有办法加载它?

【问题讨论】:

  • 程序如何分辨哪些逗号是字段分隔符,哪些逗号是十进制分隔符?
  • 简单地说:您的 CSV 格式错误。可能它是使用自制代码生成的,而不是使用众多现有库之一来生成 CSV。您最好的选择是修复生成文件的代码。

标签: c# .net csv deedle


【解决方案1】:

如果您的 CSV 文件同时使用逗号作为十进制数并作为分隔符,则无法解析它,因为它不明确。例如:

One,Two
1,2,3

这个应该被解析为1,23,还是应该被解析为12,3?如果要将逗号用于十进制数字,则需要使用其他东西作为分隔符。例如分号;

One; Two
1,2; 3

现在这是明确的,您可以解析它。您需要指定您的separators。作为奖励,您还可以指定使用, 作为十进制数字分隔符的文化,以正确解析您的十进制数字。例如,在捷克文化中就是这种情况,因此以下内容会按预期解析文件:

Frame.ReadCsv("c:/temp/test.csv", separators:";", culture:"cs-CZ")

【讨论】:

    猜你喜欢
    • 2021-05-30
    • 2014-01-04
    • 2020-10-14
    • 2013-02-20
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多