我使用一个基于大型列的小数据框创建了一个字典,方法是根据列值使用;
dict1 = {k: v for k, v in df.groupby('Some Column Name')}
我想将这些传递给第二个Dictionary,并根据其中的行数删除Dataframe。例如,任何少于20行的数据框都应忽略。
我可以基于这样的值删除它们,但找不到直接引用行号的方法;
dict2 = {k: v for k, v in dict1.items() if v[0] <=20}
感谢您的帮助。
答案 0 :(得分:1)
您可以使用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)
{}