DataFrames is currently undergoing a very major change. Looks like CSV
creates the new type of DataFrames. I hope someone can help you with using
that. As a workaround, on the normal DataFrames version, I have generally
just replaced with a string representation:
```
df[:account_numbers] = ["$account_number" for account_number in
df[:account_numbers]]

On Thu, Nov 3, 2016 at 3:05 PM, LeAnthony Mathews <leanthon...@gmail.com>
wrote:

> Sure, so I need col #1 in my CSV to be a string in my data frame.
>
> So as a test  I tried to load the file 3 different ways:
>
> *df1_CSV = CSV.read("$df1_path"; types=Dict(1=>String))  #forcing the
> column to stay a string*
> *df1_readtable = readtable("$df1_path")  #Do not know how to force the
> column to stay a string*
> *df1_convertDF = convert(DataFrame, df1_CSV)*
>
> Here is the output:  If they are all dataframes then showcols should work
> an all three df1:
>
> *julia> names(df1_CSV)*
> 3-element Array{Symbol,1}:
>  :account_number
>  Symbol("Discharge Date")
>  :site
>
> *julia> names(df1_readtable)*
> 3-element Array{Symbol,1}:
>  :account_number
>  :Discharge_Date
>  :site
>
> *julia> names(df1_convertDF)*
> 3-element Array{Symbol,1}:
>  :account_number
>  Symbol("Discharge Date")
>  :site
>
>
> *julia> eltypes(df1_CSV)*
> 3-element Array{Type,1}:
>  Nullable{String}
>  Nullable{WeakRefString{UInt8}}
>  Nullable{WeakRefString{UInt8}}
>
> *julia> eltypes(df1_readtable)*
> 3-element Array{Type,1}:
>  Int32   *#Do not know how to force the column to stay a string*
>  String
>  String
>
> *julia> eltypes(df1_convertDF)*
> 3-element Array{Type,1}:
>  Nullable{String}
>  Nullable{WeakRefString{UInt8}}
>  Nullable{WeakRefString{UInt8}}
>
> *julia> showcols(df1_convertDF)*
> 1565x3 DataFrames.DataFrame
> ERROR: MethodError: no method matching countna(::NullableArrays.
> NullableArray{St
> ring,1})
> Closest candidates are:
>   countna(::Array{T,N}) at C:\Users\lmathews\.julia\v0.5\
> DataFrames\src\other\ut
> ils.jl:115
>   countna(::DataArrays.DataArray{T,N}) at C:\Users\lmathews\.julia\v0.5\
> DataFram
> es\src\other\utils.jl:128
>   countna(::DataArrays.PooledDataArray{T,R<:Integer,N}) at
> C:\Users\lmathews\.ju
> lia\v0.5\DataFrames\src\other\utils.jl:143
>  in colmissing(::DataFrames.DataFrame) at C:\Users\lmathews\.julia\v0.5\
> DataFram
> es\src\abstractdataframe\abstractdataframe.jl:657
>  in showcols(::Base.TTY, ::DataFrames.DataFrame) at
> C:\Users\lmathews\.julia\v0.
> 5\DataFrames\src\abstractdataframe\show.jl:574
>  in showcols(::DataFrames.DataFrame) at C:\Users\lmathews\.julia\v0.5\
> DataFrames
> \src\abstractdataframe\show.jl:581
>
> *julia> showcols(df1_readtable)*
> 1565x3 DataFrames.DataFrame
> │ Col # │ Name           │ Eltype │ Missing │
> ├───────┼────────────────┼────────┼─────────┤
> │ 1     │ account_number │ Int32  │ 0       │
> │ 2     │ Discharge_Date │ String │ 0       │
> │ 3     │ site           │ String │ 0       │
>
> *julia> showcols(df1_CSV)*
> 1565x3 DataFrames.DataFrame
> ERROR: MethodError: no method matching countna(::NullableArrays.
> NullableArray{St
> ring,1})
> Closest candidates are:
>   countna(::Array{T,N}) at C:\Users\lmathews\.julia\v0.5\
> DataFrames\src\other\ut
> ils.jl:115
>   countna(::DataArrays.DataArray{T,N}) at C:\Users\lmathews\.julia\v0.5\
> DataFram
> es\src\other\utils.jl:128
>   countna(::DataArrays.PooledDataArray{T,R<:Integer,N}) at
> C:\Users\lmathews\.ju
> lia\v0.5\DataFrames\src\other\utils.jl:143
>  in colmissing(::DataFrames.DataFrame) at C:\Users\lmathews\.julia\v0.5\
> DataFram
> es\src\abstractdataframe\abstractdataframe.jl:657
>  in showcols(::Base.TTY, ::DataFrames.DataFrame) at
> C:\Users\lmathews\.julia\v0.
> 5\DataFrames\src\abstractdataframe\show.jl:574
>  in showcols(::DataFrames.DataFrame) at C:\Users\lmathews\.julia\v0.5\
> DataFrames
> \src\abstractdataframe\show.jl:581
>
>
>
> On Thursday, November 3, 2016 at 8:54:19 AM UTC-4, Michael Borregaard
> wrote:
>>
>> The result of CSV should be a DataFrame by default.  What return type do
>> you get?
>>
>

Reply via email to