Python 如何基于groupby对象中的组大小生成内置if条件

Python 如何基于groupby对象中的组大小生成内置if条件,python,if-statement,pandas,group-by,Python,If Statement,Pandas,Group By,这个问题可能很简单,但我就是不知道怎么做。 我有一个按列分组的数据帧。我想绘制每个组,但前提是其大小大于2 Here is my code: df1=df.groupby('Origin') import matplotlib.pyplot as plt for key, group in df1: plt.figure() group.plot(x='xColumnr', y='yColumn', title=str(key)) 我尝试使用df2=df1.

这个问题可能很简单,但我就是不知道怎么做。 我有一个按列分组的数据帧。我想绘制每个组,但前提是其大小大于2

Here is my code:
df1=df.groupby('Origin')

import matplotlib.pyplot as plt

for key, group in df1:
        plt.figure()
        group.plot(x='xColumnr', y='yColumn', title=str(key))
我尝试使用
df2=df1.filter(lambda group:group.size()>2)
过滤掉这些组,并在代码中设置df2代替df1,但这会导致错误
TypeError:'numpy.int32'对象不可调用
。
然后我试着

df3=df1.size()
if df3[df3 > 2]:
    plot stuff
这会引发异常“缺少True和False列”。
如何在if条件下构建,以仅打印大小大于2的组

您应该能够遍历数据集并确定组是否有足够的数据:

import pandas as pd

import matplotlib.pyplot as plt

names = ['Bob','Jessica','Mary','John','Mel']
zipcode = [100, 100, 77, 77, 973]
weight = [100, 200, 300, 400, 500]

BabyDataSet = zip(names,zipcode, weight)

df = pd.DataFrame(data = BabyDataSet, columns=['Name', 'Zipcode', 'Weight'])

grouped = df.groupby(df.Zipcode)

for key, group in grouped:
    entries = group.size
    columns = len(group.columns)
    if entries/columns >= 2:
        plt.figure()
        group.plot(x='Zipcode', y='Weight', title=str(key))
不过,也许还有更好的方法


group.size()
启发的示例应该是
group.size
,它是一个属性而不是一个方法。很好,很有效!但是我不明白为什么需要
columns=len(group.columns)
,你能解释一下吗?谢谢那条线没有必要。你也可以直接使用
len(group.columns)
。它只是为了更好的可读性。