最佳答案
我在用熊猫来读一堆 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 阅读阶段本身没有其他方法可以做到这一点。
注意: 这听起来像是 就像之前问过的问题,但是这里的答案走的是一条非常不同的道路(与布尔相关) ,这并不适用于这个问题。请不要标记为重复!