Hello Ralph,  this worked.
  
I changed added the eltypes option to force the readtable command to read 
the first column in as a string type rather than a destructive int32. 
*df1_readtable_old = readtable("$df1_path")*
*df1_readtable_new = readtable("$df1_path", eltypes=[String,String,String])*

julia> *eltypes(df1_readtable_old)*
3-element Array{Type,1}:
 Int32
 String
 String

julia>* eltypes(df1_readtable_new)*
3-element Array{Type,1}:
* String*
 String
 String

Thanks everyone for the support.

julia>

On Thursday, November 3, 2016 at 11:29:53 PM UTC-4, Ralph Smith wrote:
>
> Unless I misunderstand,
>
> df1 = readtable(file1,eltypes=[String,String,String])
>
>
> seems to be what you want.
>
> If you're new to Julia, the fact that a "vector of types" really means 
> exactly that may be surprising. 
>
> Let us hope that the new versions of DataFrames include a parser that 
> doesn't treat most 10-digit numbers as Int32 on systems like yours.
>
> On Wednesday, November 2, 2016 at 4:15:20 PM UTC-4, LeAnthony Mathews 
> wrote:
>>
>> Spoke too soon.  
>> Again I simple want the CSV column that is read in to not be an int32, 
>> but a string.
>>
>> Still having issues casting the CSV file back into a Dataframe.
>> Its hard to understand why the Julia system is attempting to determine 
>> the type of the columns when I use readtable and I have no control over 
>> this.
>>
>> Why can I not say:
>> df1 = readtable(file1; types=Dict(1=>String)) # assuming your account 
>> number is column # 1
>>
>> *Reading the Julia spec-Advanced Options for Reading CSV Files*
>> *readtable accepts the following optional keyword arguments:*
>>
>> *eltypes::Vector{DataType} – Specify the types of all columns. Defaults 
>> to [].*
>>
>>
>> *df1 = readtable(file1, Int32::Vector(String))*
>>
>> I get 
>> *ERROR: TypeError: typeassert: expected Array{String,1}, got Type{Int32}*
>>
>> Is this even an option?  Or how about convert the df1_CSV to 
>> df1_dataframe?  
>> *df1_dataframe = convert(dataframe, df1_CSV)*
>> Since the CSV .read seems to give more granular control.
>>
>>
>> On Tuesday, November 1, 2016 at 7:28:36 PM UTC-4, LeAnthony Mathews wrote:
>>>
>>> Great, that worked for forcing the column into a string type.
>>> Thanks
>>>
>>> On Monday, October 31, 2016 at 3:26:14 PM UTC-4, Jacob Quinn wrote:
>>>>
>>>> You could use CSV.jl: http://juliadata.github.io/CSV.jl/stable/
>>>>
>>>> In this case, you'd do:
>>>>
>>>> df1 = CSV.read(file1; types=Dict(1=>String)) # assuming your account 
>>>> number is column # 1
>>>> df2 = CSV.read(file2; types=Dict(1=>String))
>>>>
>>>> -Jacob
>>>>
>>>>
>>>> On Mon, Oct 31, 2016 at 12:50 PM, LeAnthony Mathews <leant...@gmail.com
>>>> > wrote:
>>>>
>>>>> Using v0.5.0
>>>>> I have two different 10,000 line CSV files that I am reading into two 
>>>>> different dataframe variables using the readtable function.
>>>>> Each table has in common a ten digit account_number that I would like 
>>>>> to use as an index and join into one master file.
>>>>>
>>>>> Here is the account number example in the original CSV from file1:
>>>>> 8018884596
>>>>> 8018893530
>>>>> 8018909633
>>>>>
>>>>> When I do a readtable of this CSV into file1 then do a* 
>>>>> typeof(file1[:account_number])* I get:
>>>>> *DataArrays.DataArray(Int32,1)*
>>>>>  -571049996
>>>>>  -571041062
>>>>>  -571024959
>>>>>
>>>>> when I do a 
>>>>> *typeof(file2[:account_number])*
>>>>> *DataArrays.DataArray(String,1)*
>>>>>
>>>>>
>>>>> *Question:  *
>>>>> My CSV files give no guidance that account_number should be Int32 or 
>>>>> string type.  How do I force it to make both account_number elements type 
>>>>> String?
>>>>>
>>>>> I would like this join command to work:
>>>>> *new_account_join = join(file1, file2, on =:account_number,kind = 
>>>>> :left)*
>>>>>
>>>>> But I am getting this error:
>>>>> *ERROR: TypeError: typeassert: expected Union{Array{Symbol,1},Symbol}, 
>>>>> got Array{*
>>>>> *Array{Symbol,1},1}*
>>>>> * in (::Base.#kw##join)(::Array{Any,1}, ::Base.#join, 
>>>>> ::DataFrames.DataFrame, ::D*
>>>>> *ataFrames.DataFrame) at .\<missing>:0*
>>>>>
>>>>>
>>>>> Any help would be appreciated.  
>>>>>
>>>>>
>>>>>
>>>>

Reply via email to