当前位置: 首页 > 知识库问答 >
问题:

Python:如何根据每个条目中的行数删除dict条目

章茂
2023-03-14
dict1 = {k: v for k, v in df.groupby('Some Column Name')}
dict2 = {k: v for k, v in dict1.items() if v[0] <=20}

共有1个答案

范飞翰
2023-03-14

您可以使用df.shape[0]并使用您已经编写的代码。df.shape中的第一个值是行数,第二个值是列数

dict2 = {k: v for k, v in dict1.items() if df.shape[0]<21}

我创建了这个小数据帧来向您展示:

数据帧为:

df = pd.DataFrame([['ch',2],['bt',4],['ch',10],['bt',5],['aw',3]],columns=['code','freq'])
print(df.shape)
(5,2)  #5 rows is the upper limit

dict1 = {k: v for k, v in df.groupby('code') if df.shape[0]>2}  
print(dict1)

{'aw':   code  freq
4   aw     3, 'bt':   code  freq
1   bt     4
3   bt     5, 'ch':   code  freq
0   ch     2
2   ch    10}

dict1 = {k: v for k, v in df.groupby('code') if df.shape[0]>6}
print(dict1)
{}
 类似资料:
  • 问题内容: 我正在尝试从数据帧中删除少于100次的条目。数据框如下所示: 现在,我这样计算标记出现的次数: 但是然后我不知道如何删除那些计数低的条目… 问题答案: 编辑:感谢@WesMcKinney显示了这种更直接的方法: 产量

  • 问题内容: 我有以下数据框 基本上我可以如下过滤行 我可以如下所示删除/删除一行 但是我想根据条件删除一定数量的行,我该怎么做? 问题答案: 最好的是但需要反转条件-使所有值相等且更高,如下所示: 与功能相同: 另一种可能的解决方案是通过以下方法反转掩码:

  • 我有一个相当大的数据帧(几百列),我想对它执行以下操作。我在下面用一个玩具数据框和一个简单的条件来说明我需要什么。 对于每一行:条件#1:检查其中两列的值是否为零(0)。如果这是真的,请保留该行并继续下一行。如果任一列的值为零(0),则条件为真。 如果条件#1为False(第1列或第4列中没有零),请检查行中所有剩余的列。如果任何剩余列的值为零,则删除该行。 我希望过滤后的数据帧作为一个新的、独立

  • 问题内容: 有没有一种方法可以对 field1 = x* 和 field2 = y的文档执行删除操作 ? *** 我看到了删除功能,但没有附带。如果使用事务,则存在get和delete,但get似乎不接受“ where”子句。 我希望我在文档中缺少一些内容。 谢谢 问题答案: 为此,您需要先创建所需的查询,然后才使用如下方法:

  • 问题内容: 我有一个熊猫DataFrame,里面有很多值。 如何删除这样的列? 我试图这样做: 有更优雅的方法吗? 问题答案: 这是保留每列中小于或等于指定数量的nan的列的另一种选择: 在我的测试中,这似乎比李建勋在我测试的案例中建议的放置列方法要快一些:

  • 让我们假设我的数据frame如下所示: 我有一个的列表,我想从Dataframe中删除它们。该列表超过200个长度,因此多个筛选器太麻烦了。 是否可以通过传递的列表来进行筛选?