使用pyarrow保存嵌套列,以便稍后使用pandas进行分析

使用pyarrow保存嵌套列,以便稍后使用pandas进行分析,pandas,pyarrow,Pandas,Pyarrow,有没有一种方法可以强制一个简单嵌套列的数据类型(DICT列表)。如果我将列保存为字符串,那么我需要使用.apply(literal_eval)将列返回到列表中,以使用pd.json_normalize()取消对它的测试,但这会产生将字符串转换为布尔值或整数等副作用 例如,下面的代码可能会失败,因为某些行的值是布尔值或整数(甚至是列表)。有没有办法强制这些类型为字符串 custom_field = pa.struct([pa.field('id', pa.string()),

有没有一种方法可以强制一个简单嵌套列的数据类型(DICT列表)。如果我将列保存为字符串,那么我需要使用
.apply(literal_eval)
将列返回到列表中,以使用
pd.json_normalize()
取消对它的测试,但这会产生将字符串转换为布尔值或整数等副作用

例如,下面的代码可能会失败,因为某些行的值是布尔值或整数(甚至是列表)。有没有办法强制这些类型为字符串

custom_field = pa.struct([pa.field('id', pa.string()),
                          pa.field('value', pa.string()),
])
schema = pa.schema([("custom_fields", pa.list_(custom_field))])
我的第二个问题是关于更复杂的领域。特别是使用Zendesk REST API,我可以检索某些可以包含许多嵌套元素的字段。我并不总是需要扩展每个字段,因此我的目标是将嵌套列保存为dict列表,因此,将来当我将表读入pandas时,如果需要,我可以直接在列上使用pd.json_normalize()将字段扩展为行。不过,我还没有想出一个办法来做到这一点

使用下面来自Zendesk聊天API的示例,我是否有办法将“Web页面”字段保存为列表/结构类型?我不想现在就放弃它,但也许将来我需要这样做

我希望这是可能的,因为像Zendesk票证审计这样的某些端点具有非常嵌套的数据。一个嵌套字段将导致另一个嵌套字段,该字段将导致另一个嵌套字段,依此类推。我无法知道每个字段的所有可能键、值和类型,而且大多数字段只与总行的一小部分相关