Python 如何根据列中唯一值的数量从字典中删除数据帧?
我有一个名为Python 如何根据列中唯一值的数量从字典中删除数据帧?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个名为f的12个df字典,每个df都有相同的列:backgas\u Flow\u sccm、ContextID、StepID、经过的时间、iso\u forest、alarm 我试图做的是计算BacksGas\u Flow\u sccm列中唯一值的数量,如果数字id唯一值小于10,我想从字典中删除该df 我试过这样做: v = list(f.values()) for i in range (0, len(v)): if (v[i]['BacksGas_Flow_sccm'].n
f
的12个df
字典,每个df
都有相同的列:backgas\u Flow\u sccm、ContextID、StepID、经过的时间、iso\u forest、alarm
我试图做的是计算BacksGas\u Flow\u sccm
列中唯一值的数量,如果数字id唯一值小于10,我想从字典中删除该df
我试过这样做:
v = list(f.values())
for i in range (0, len(v)):
if (v[i]['BacksGas_Flow_sccm'].nunique()) < 10:
del (v[i])
我想删除字典中除第三、第八和第九个之外的所有df
我知道分享dfs
的屏幕截图不是一件好事,但因为有多个dfs
,所以很难在这里发布示例df
。但这就是我的dfs
字典的样子
塞利乌斯·斯廷格关于错误原因的说法是正确的
我认为在删除循环中的一项之后,索引会重置并 这就是为什么您可能会出现错误[…] 这应该行得通
dictNew = dict()
for key,value in f.items():
if (value['BacksGas_Flow_sccm'].nunique()>=10):
dictNew[key] = value
f = dictNew
我认为在删除循环中的一个项目后,索引会重置,这就是为什么可能会出现错误,为什么不分两步执行,首先检索应该删除的DFs的索引,然后从列表中删除这些索引。只需创建一本包含理解力的新词典,只保留你想要的元素。向上投票-我的精确点感谢你完成了答案!:D
df unique values
1 2
2 5
3 373
4 2
5 4
6 3
7 4
8 560
9 141
10 4
11 5
12 4
dictNew = dict()
for key,value in f.items():
if (value['BacksGas_Flow_sccm'].nunique()>=10):
dictNew[key] = value
f = dictNew