【发布时间】:2018-09-16 00:27:38
【问题描述】:
我正在使用 Pandas 读取一堆 CSV。将选项 json 传递给 dtype 参数以告诉 pandas 将哪些列作为字符串而不是默认值读取:
dtype_dic= { 'service_id':str, 'end_date':str, ... }
feedArray = pd.read_csv(feedfile , dtype = dtype_dic)
在我的场景中,所有除少数特定列之外的列将被读取为字符串。因此,我不想在dtype_dic 中将几列定义为str,而是将我选择的少数设置为int 或float。有没有办法做到这一点?
这是一个循环遍历具有不同列的各种 CSV,因此在将整个 csv 读取为字符串 (dtype=str) 后直接进行列转换并不容易,因为我不会立即知道 csv 具有哪些列。 (我宁愿花精力定义 dtype json 中的所有列!)
编辑:但是,如果有一种方法可以处理要转换为数字的列名列表,而不会在该列不存在于该 csv 中时出错,那么是的,如果没有其他方法,那将是一个有效的解决方案在 csv 读取阶段执行此操作的方法。
注意:这听起来 like a previously asked question 但那里的答案走了一条非常不同的路径(与布尔相关),不适用于这个问题。请不要标记为重复!
【问题讨论】: