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