Re: Import CSV can not understand string correctly
- To: mathgroup at smc.vnet.net
- Subject: [mg131715] Re: Import CSV can not understand string correctly
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Mon, 23 Sep 2013 21:58:10 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <20130921083610.2A1EC6A34@smc.vnet.net>
data = Import["/Users/hanlonr/Desktop/test.csv", "Table"]; data2 = (StringSplit[#[[1]], ","] & /@ data) /. x_String?(AtomQ[ToExpression[#]] &) :> ToExpression[x] {{1, 2, "3D22", 4, 5, 6, "7D63"}, {8, 9, "5D61", 1.234, 5.678, 8, "9D45"}} Map[Head, data2, {2}] {{Integer, Integer, String, Integer, Integer, Integer, String}, {Integer, Integer, String, Real, Real, Integer, String}} Bob Hanlon On Sun, Sep 22, 2013 at 6:35 AM, Joug Raw <jougraw at gmail.com> wrote: > Thanks for your answered. I have just tested it. It works in the sense of > 3D22 can be stored in string. > > However, there are three main problems: > > 1- The whole line(recored) in the .csv file is stored in a single string > in mma. All the fields separated by comma in .csv file are merged into one > string in mathematica. > > 2- the comma are written together with two double quote sign in the string > in Mathematica, which is "\",\"". So, the double quote is a real string and not > a symbol. > > 3- numbers in the .csv file are transformed into strings and belong to > part of the line strings in Mathematica. > > These together make the data very difficult to process. Then there is no > difference for me to use ReadList rather then Import to read the file and > then add many StringReplace or ReplacePart or ReplaceAll and so on to > do complicated text processing. > > Since Import["filename", CSV] works fine for everything except the > misunderstanding of specific string format. Is there any way to still use > it and just disable transform 3D22 like string to number? > > > On Sat, Sep 21, 2013 at 4:32 PM, Bob Hanlon <hanlonr357 at gmail.com> wrote: > >> This works for me: >> >> data = Import["filepathname", "Table"] >> >> >> >> Bob Hanlon >> >> >> >> >> On Sat, Sep 21, 2013 at 4:36 AM, Joug Raw <jougraw at gmail.com> wrote: >> >>> >>> In my CSV file, I have string fields like 3D22 or so. >>> While I imported the CSV file in mathemtaica, the 3D22 string was >>> converted >>> to number 3x10^22. >>> >>> How dose this happened??? How can I avoid this kind of transformation and >>> keep my original string when Import a CSV file? >>> >>> >>> >> >
- References:
- Import CSV can not understand string correctly
- From: Joug Raw <jougraw@gmail.com>
- Import CSV can not understand string correctly