我正在使用 dtype 读取一堆 CSV 文件来指定每列的数据类型:
dict_tpye = {"columns_1":"int","column_2":"str"}
pd.read_csv(path,dtype=dict_tpye)
我在执行此操作时遇到的问题是具有非浮点值的列缺少行,这些行会上升并出错。我该如何处理这个问题?
在这种情况下,我希望使用默认值,例如数字值使用 0,名称使用空字符串。
最佳答案
考虑使用字典的converters参数,将用户定义函数的结果映射到导入的列。下面的用户定义方法使用内置的 isdigit()
如果字符串中的所有字符都是数字,则返回 True;如果至少有一个不是数字,则返回 False;和 isalpha()
作为字符串对应项。根据需要进行调整,尤其是对于字符串,因为您可以在其内容中允许数字:
import pandas as pd
cleanFloat = lambda x: float(x if x.isdigit() else 0)
cleanString = lambda x: str(x if x.isalpha() else '')
dict_convert = {1:cleanFloat, 2:cleanString,}
dict_type = {"columns_1":"int","column_2":"str"}
df = pd.read_csv('Input.csv', converters=dict_convert, dtype=dict_type)
关于python - 使用 dtype 读取文件处理 pandas 中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41324143/