如何将pandas dataframe的列转换为原生的Python数据类型?

9 浏览
0 Comments

如何将pandas dataframe的列转换为原生的Python数据类型?

我有一个数据帧,其中列的数据类型需要映射到Python的本机数据类型。

我希望能够从numpy获取一个字典,并将每列转换为其本机类型。

例如:

{numpy.object_: object,

numpy.bool_: bool,

numpy.string_: str,

numpy.unicode_: unicode,

numpy.int64: int,

numpy.float64: float,

numpy.complex128: complex}

我尝试了astype和pd.to_numeric,但是都不能将列降级到足够的程度。

df['source'] = df['source'].astype(int)返回int32,pd.to_numeric也是如此。

更新:

大多数评论质疑这样做的智慧。networkx读取数据帧并接受np数据类型。然而,由于这个已经有文件记录的错误,图无法使用json_dumps写入:TypeError: Object of type 'int64' is not JSON serializable。

谢谢。

0