python - 如何根据列中唯一值的数量从字典中删除/删除数据框?
问题描述
我有一个包含 12 个dfs
名称的字典,f
每个df
都有相同的列:BacksGas_Flow_sccm, ContextID, StepID,Time_Elapsed, iso_forest, alarm
.
我要做的是计算BacksGas_Flow_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])
但我收到以下错误:
Traceback (most recent call last):
File "<ipython-input-8-580f2e039fa5>", line 2, in <module>
if (v[i]['BacksGas_Flow_sccm'].nunique()) < 10:
IndexError: list index out of range
关于如何做到这一点的任何建议?
PS:
BacksGas_Flow_sccm
在所有的唯一值的数量dfs
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
我想删除dfs
字典中除第 3、第 8 和第 9 之外的所有内容。
我知道分享 的截图不是一件好事dfs
,但是由于有多个dfs
,所以很难在df
此处发布示例。但这就是我的dfs
字典
解决方案
Celius Stingher 对错误原因的看法是正确的
我认为删除循环中的项目后,索引会重置,这就是为什么您可能会收到错误 [....]
这应该有效。
dictNew = dict()
for key,value in f.items():
if (value['BacksGas_Flow_sccm'].nunique()>=10):
dictNew[key] = value
f = dictNew
推荐阅读
- c - 在内核中使用 sock_create、accept、bind 等
- excel - 从工作表填充列表框时出现错误 381
- python - Trying a function to get data in separate ranges, tally it, and return a list of the tallies
- scala - Scala Slick and nested case classes
- javascript - 强制有向图节点粘在中心
- javascript - VueJS : Adding to existing HTML and handling imports
- batch-file - 使用 if 语句进行批量数值比较
- javascript - Custom mouse cursor with clickable option
- mysql - pentaho Mysql和连接问题
- html - 由于溢出导致的填充底部:自动