这个问题可能很简单,但我无法弄清楚如何做到这一点。 我有一个按列分组的数据框。我想绘制每个组,但前提是它的大小是> 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' object is not callable
。
然后我试了
df3=df1.size()
if df3[df3 > 2]:
plot stuff
引发异常'True和False列缺失'。 如何构建if条件以仅绘制大小为>的组? 2?
答案 0 :(得分:1)
您应该能够遍历数据集并确定这些组是否有足够的数据:
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))
尽管如此,可能还有更好的方式。
启发的示例