gpt4 book ai didi

python - pandas astype python bool 而不是 numpy.bool_

转载 作者:行者123 更新时间:2023-12-04 17:40:36 31 4
gpt4 key购买 nike

我需要将 Pandas 数据框转换为 JSON 对象。

不过

json.dumps(df.to_dict(orient='records'))

失败,因为 bool 列不是 JSON 可序列化的,因为它们是 numpy.bool_ 类型。现在我尝试了 df['boolCol'] = df['boolCol'].astype(bool) 但仍然将字段类型保留为 numpy.bool_而不是序列化为 JSON 的 pyhton bool 没问题。

关于如何在不循环遍历每条记录并进行转换的情况下转换列的任何建议?

谢谢

编辑:

这是对不同内容的数据帧进行整体清理的一部分,因此它们可以用作 API 的 JSON 负载。因此,我们目前有这样的东西:

for cols in df.columns:
if type(df[cols][0]) == pd._libs.tslibs.timestamps.Timestamp:
df[cols] = df[cols].astype(str)
elif type(df[cols]) == numpy.bool_:
df[cols] = df[cols].astype(bool) #still numnpy bool afterwards!

最佳答案

刚测试了一下,问题好像是orient='records'这个参数引起的。似乎您必须将其设置为一个选项(例如列表)并将结果转换为您喜欢的格式。

import numpy as np
import pandas as pd
column_name = 'bool_col'

bool_df = pd.DataFrame(np.array([True, False, True]), columns=[column_name])

list_repres = bool_df.to_dict('list')
record_repres = [{column_name: values} for values in list_repres[column_name]]

json.dumps(record_repres)

关于python - pandas astype python bool 而不是 numpy.bool_,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54671120/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com