pandas read_csv import为列提供混合类型

les*_*l0l 12 python pandas

我有一个包含130,000行的csv文件.在使用pandas的read_csv函数读入文件后,其中一个列("CallGuid")具有混合对象类型.

我做了:

df = pd.read_csv("data.csv")
Run Code Online (Sandbox Code Playgroud)

然后我有这个:

In [10]: df["CallGuid"][32767]
Out[10]: 4129237051L    

In [11]: df["CallGuid"][32768]
Out[11]: u'4129259051'
Run Code Online (Sandbox Code Playgroud)

所有行<= 32767都是类型long,所有行> 32767都是unicode

为什么是这样?

pau*_*ip3 5

正如其他人指出的那样,您的数据可能格式不正确,例如有引号或其他东西......

试着做:

import pandas as pd
import numpy as np

df = pd.read_csv("data.csv", dtype={"CallGuid": np.int64})
Run Code Online (Sandbox Code Playgroud)

它还具有更高的内存效率,因为 Pandas 不必猜测数据类型。