在过滤某些“名称”值时出现问题。我想对月份和名称进行分组,然后从列名“ 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()。
有人可以指出我正确的方向吗?
谢谢。
答案 0 :(得分:0)
如果要在一行代码中组合过滤器和分组依据:
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 score
0 ar street3 1 2.0
1 ar street3 2 5.0
如果要添加月份条件:
tag = 'ar street3'; month = 1
df = df.groupby(['month', 'name']).filter(lambda x: tag in x.name and month == x.month)
name month score
0 ar street3 1 2.0
如果只需要一个月:
#i have adapted the sample
df = 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 = 1
df = df.groupby(['month', 'name']).filter(lambda x: month == x.month)
输出:
name month score
0 ar street3 1 2.0
5 ke 1 9.0