如何使用 Pandas iterrows 修复 ValueError

How to fix ValueError with Pandas iterrows

我正在尝试编写一个函数,在给定 PD 列和图例标签列表的情况下生成条形图。我有经过数字编码的分类数据,因此默认标签只是我想改回字符串值的数字。这是我的代码:

legend_labels = ["label 1", "label 2"]

def plot_percentages(col, legend_labels):

    plt.figure(figsize=(7,6))

    ax = sns.barplot(x="x", y="x", hue=col, data=df, 
                     estimator=lambda x: len(x) / len(df) * 100)

    ax.set(ylabel="Percentage")

    plt.xticks([0, 1], ['A', "B"])

    L=plt.legend()

    for idx, val in pd.DataFrame(legend_labels).iterrows():
    L.get_texts()[idx].set_text(val)

ax

它returns出现以下错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

提前感谢您就如何解决此问题提出任何建议。

解决办法是不要在这里使用 iterows() 而只是一个简单的 for 循环。

for idx, val in enumerate(legend_labels):
    L.get_texts()[idx].set_text(val)