【发布时间】:2021-05-18 08:51:05
【问题描述】:
我有一个代码可以检查一列是否包含一个列表,如果发现它会分解该列表并将分解的列转换为int(如果它是数字)。但是,我遇到了一个问题,因为我的文件中的某些列表包含字典。我如何将它包含到我现有的代码中以检查列表是否包含字典/键,如果是,它不应该分解该列并保持原样。
当前代码:
x = (doc.applymap(type) == list).all()
y = x.index[x].tolist()
for i in y:
doc= doc.explode(i)
if (doc[i].str.isnumeric().all()) == True:
x = (doc[i].to_frame().columns)
doc[x] = doc[x].fillna(0).astype(int)
输入:
ID
"number": [1,2,3,4],
"number": [{"enabled": 1,2,3,4}]
预期输出
ID
1
2
3
4
[{"enabled": 1,2,3,4}]
【问题讨论】:
-
这个问题略有不同,它检查它是否是一本字典,我的一个是检查字典是否真的在列表中
-
然后迭代所有列表项并检查每个项是否为字典?找到字典后,您可以停止检查。
-
所以您想知道您是在爆炸字典还是列表,对吗?只需进行两步检查吗?无论如何,你能提供你的数据样本吗?
-
我已经包含了一个关于输入和输出应该是什么样的想法,所以是的,应该有一个两步检查,检查列是否包含我已经完成的列表, 但然后检查该列表是否包含字典,如果包含则打印它,如果它不包含字典,则分解列
标签: python pandas list dictionary