gpt4 book ai didi

python - 我有单元素数组。如何将它们更改为元素本身?

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:11 26 4
gpt4 key购买 nike

使用records = pandas.read_json(path)将JSON文档导入到pandas数据框中,其中path是JSON文档的预定义路径,我发现某些列的内容生成的数据帧“记录”不仅仅是预期的字符串。相反,此类列中的每个“单元格”都是一个数组,包含一个元素——感兴趣的字符串。这使得使用 bool 索引选择列变得困难。例如,Ipython 中的 records[records['category']=='Python Books'] 输出一个空数据帧;如果“单元格”包含字符串而不是字符串数组,则输出将非空,包含与 python 书籍相对应的行。

我可以修改 JSON 文档,以便“记录”正确读取字符串。但是有没有办法直接修改“记录”,以某种方式将单元素数组剥离为元素本身?

最佳答案

更新:澄清后,我相信这可能会实现您想要的,同时将其限制为对数据的单次迭代:

nested_column_1 = records["column_name_1"]
nested_column_2 = records["column_name_2"]

clean_column_1 = []
clean_column_2 = []

for i in range(0, len(records.index):
clean_column_1.append(nested_column_1[i][0])
clean_column_2.append(nested_column_2[i][0])

然后将 clean_column 列表转换为系列,就像您在评论中提到的那样。显然,您可以根据需要创建尽可能多的nested_column 和clean_column 列表,并在循环中更新它们。

您可以通过保留“问题”列的记录并使用它来创建数据结构来管理嵌套/干净列表来轻松概括这一点,而不是像我在示例中那样显式声明它们。但我认为这可能会更清楚地说明该方法。

显然,这假设所有列都具有相同数量的元素,这在您的情况下可能不是有效的断言。

原始答案:

抱歉,如果我过于简单化或误解了问题,但是你能做这样的事情吗?

simplified_list = [element[0] for element in my_array_of_arrays]

或者,如果您不需要立即完成所有事情,只需一个生成器即可:

simplifying_generator = (element[0] for element in my_array_of_arrays)

关于python - 我有单元素数组。如何将它们更改为元素本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674251/

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