Python 绘制条形图-值错误:数据帧的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()
我试图从数据帧中绘制条形图,并从最后一行中获取ValueError。如有任何建议,将不胜感激。谢谢 以下是错误: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: 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如果我更改代码,它会返回相同的错误。您确定最后一行返回错误吗?我的答案也不管用?