ValueError: The truth value of a GeoDataFrame is ambiguous
ValueError: The truth value of a GeoDataFrame is ambiguous
过滤某些 'name' 值时出现问题。我想按月份和名称分组,然后从列名 '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()。
有人能给我指出正确的方向吗?
提前致谢。
如果你想在一行代码中结合使用 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 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
过滤某些 'name' 值时出现问题。我想按月份和名称分组,然后从列名 '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()。
有人能给我指出正确的方向吗?
提前致谢。
如果你想在一行代码中结合使用 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 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