I'm using Pandas to read a bunch of CSVs. Passing an options json to dtype parameter to tell pandas which columns to read as string instead of the default:
dtype_dic= { 'service_id':str, 'end_date':str, ... }
feedArray = pd.read_csv(feedfile , dtype = dtype_dic)
In my scenario, all the columns except a few specific ones are to be read as strings. So instead of defining several columns as str in dtype_dic
, I'd like to set just my chosen few as int or float. Is there a way to do that?
It's a loop cycling through various CSVs with differing columns, so a direct column conversion after having read the whole csv as string (dtype=str
), would not be easy as I would not immediately know which columns that csv is having. (I'd rather spend that effort in defining all the columns in the dtype json!)
Edit: But if there's a way to process the list of column names to be converted to number without erroring out if that column isn't present in that csv, then yes that'll be a valid solution, if there's no other way to do this at csv reading stage itself.
Note: this sounds like a previously asked question but the answers there went down a very different path (bool related) which doesn't apply to this question. Pls don't mark as duplicate!