ValueError:GeoDataFrame 的真值不明确

在过滤某些“名称”值时遇到问题。我想对月份和名称进行分组,然后从列名 'ar street3' 中过滤出一个特定的值,并形成一个趋势。


这是我在下面写的代码:


df = pd.DataFrame({ 

'name'  : ['ar street3', 'ar street 3', 'ba foo', 'br', ' oo', 'ke'],

'month' : [1, 2, 3, 4, 5, 6],

'score' : [2.0, 5., 8., 1., 2., 9.]})


{fig, ax = plt.subplots(figsize=(11,7))

df.groupby(['month', 'name']).filter(lambda x: 'ar street3' in x,df).mean(['score']).unstack().plot(ax.ax)}

我收到这种类型的错误:


ValueError:GeoDataFrame 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。


有人可以指出我正确的方向吗?


提前致谢。


互换的青春
浏览 180回答 1
1回答

阿晨1998

如果你想在一行代码中结合 filter 和 groupby:df = pd.DataFrame({'name'  : ['ar street3', 'ar street3', 'ba foo', 'br', ' oo', 'ke'],                   'month' : [1, 2, 3, 4, 5, 6],                   'score' : [2.0, 5., 8., 1., 2., 9.]})tag = 'ar street3'df = df.groupby(['month', 'name']).filter(lambda x: tag in x.name)print(df)输出:         name  month  score0  ar street3      1    2.01  ar street3      2    5.0如果要添加月份条件:tag = 'ar street3'; month = 1df = df.groupby(['month', 'name']).filter(lambda x: tag in x.name and month == x.month)         name  month  score0  ar street3      1    2.0如果你只想要一个月:#i have adapted the sampledf = pd.DataFrame({'name'  : ['ar street3', 'ar street3', 'ba foo', 'br', ' oo', 'ke'],               'month' : [1, 2, 3, 4, 5, 1],               'score' : [2.0, 5., 8., 1., 2., 9.]})month = 1df = df.groupby(['month', 'name']).filter(lambda x: month == x.month)输出:         name  month  score0  ar street3      1    2.05          ke      1    9.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python