Python 绘制条形图-值错误:数据帧的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()

Python 绘制条形图-值错误:数据帧的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all(),python,pandas,Python,Pandas,我试图从数据帧中绘制条形图,并从最后一行中获取ValueError。如有任何建议,将不胜感激。谢谢 以下是错误: ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 这是我的密码: #Calculate sparsity per day grouped_id = df_sample.set_index('id', drop=Fa

我试图从数据帧中绘制条形图,并从最后一行中获取ValueError。如有任何建议,将不胜感激。谢谢

以下是错误:

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
这是我的密码:

#Calculate sparsity per day
grouped_id = df_sample.set_index('id', drop=False, inplace=False)
grouped_id = grouped_id.groupby('id')

df = grouped_id['avg_sparsity'].agg(np.sum).to_frame()
df.reset_index(inplace=True)

df['avg_sparsity'] = df['avg_sparsity'].apply(lambda x: int(x)/unique_time_cnt)                                                         
df['color'] = df['id'].apply(lambda x: 'r' if x in h_ids else 'y' )
df['type'] = df['id'].apply(lambda x: 'h' if x in h_ids else 'c')
df['fid'] = df['id'].apply(lambda x: fid_map.get(x))

fig = plt.figure(figsize=(9,7), dpi=100)

plt.bar( left=df['fid'], height=df['avg_sparsity'], color=df['color'])

我认为您需要将列转换为numpy数组,并将颜色转换为
列表

plt.bar(left=df['fid'].values, 
        height=df['avg_sparsity'].values,
        color=df['color'].values.tolist())
样本:

df = pd.DataFrame({'fid' : [2,4,5],
                   'avg_sparsity' : [10,20,30],
                   'color':['r','y','y']})

print (df)                   
   avg_sparsity color  fid
0            10     r    2
1            20     y    4
2            30     y    5

plt.bar(left=df['fid'].values, 
        height=df['avg_sparsity'].values.tolist(), 
        color=df['color'].values.tolist())

plt.bar(left=df['fid'].值,height=df['avg\u sparsity'].值,color=df['color'].值)怎么样?@jezrael如果我更改代码,它会返回相同的错误。您确定最后一行返回错误吗?我的答案也不管用?