Pandas Dtypewarning:如何在列中找到不同单元格的dtype?

时间:2017-08-31 19:10:22

标签: python pandas numpy

当我在pandas中导入csv文件时,我得到一个DtypeWarning:

列(3)具有混合类型。在导入时指定dtype选项或设置low_memory = False。

  1. 如何找出每个细胞的dtype是什么?我认为数据可能存在一些问题,这就是警告即将发生的原因,但它是一个大约5百万行的文件,难以识别罪魁祸首?
  2. 在Import上指定dtype是一个好习惯吗?如果这样做了,是否会导致数据“丢失”?

1 个答案:

答案 0 :(得分:5)

我同意piRSquared。只是添加他的评论,我遇到了类似的问题。我的列应该有字符串值,但是一个值是一个浮点值(具有NaN值)。

您可以采取一些措施来帮助您进行分析。设置你的数据帧是df。您可以使用以下方法检查每个列的类型:

df.dtypes

对于'对象'类型的每一列,您可以通过创建单元格类型进行更多检查:

df['type'] = df['mycolumn'].apply(lambda x: type(x).__name__)

如果您的列应该是字符串值,您可以检查哪些单元格不是字符串:

df[df.type != 'str']