If I have a simple CSV file with digits followed by a lower case “c”, what I would expect to get imported as a string gets imported as an integer when importing. Here is an example:
Why is the suffix “c” causing the import to interpret the string as an
integer?
I don’t know the answer, but I have seen Import of CSV interpret values and convert them from String to another type incorrectly. Very annoying. A workaround is to Import the “RawData” element.
Casting the workaround as a dataset does not give the correct result:
myData = Dataset[Import["myData.csv", "RawData"]]
because the header line is treated as a data row. I’m sure the “RawData” import could be manipulated to create the necessary associations to produce the dataset I want, but that seems to be such unnecessary work for such a simple import.
The reason that this is being interpreted as the number 10 is it thinks “c” is the currency token for cents. The “RawData” element which does no processing at all is similar to the option “Numeric” → False. This is fine if you only want strings, but if you actually want numbers like “10” but not “10c” to be interpreted as numbers, you can use “CurrencyTokens” → None.
Or, if you wanted a dataset, this should work for you: