首页 > 解决方案 > ValueError:int() 的无效文字,以 10 为底:“系统区域”

问题描述

def panda_data_frame (raw_data):
    details = {}
    sample_list = [1]
    for data in raw_data:
        for key,value in raw_data[data].items():
            try:
                if key == 'Time to resolution' or key == 'activity ratio %':
                    details[key].append(float(value))
                else:
                    details[key].append(value)
            except KeyError:
                if key == 'Time to resolution' or key == 'activity ratio %':
                    details[key] = [float(value)]
                else:
                    details[key] = [value]
    print(details)
    return  pd.DataFrame(details)

 def plot3(data):
    print(data)
    df = panda_data_frame(data)
    print(df)
    df3 = df.iloc[['system area','Incident priority']]
    #df3 = df['system area','Incident Priority'] 
    print(df3)
    sns_plot3 = sns.heatmap(df3, xticklables='system area', yticklables='Incident Priority', annot=True, fmt="d")
    plt.tight_layout()
    #sns_plot.set_yticks([0, 180])
    plt.show()
    sns_plot.savefig('output3.png')   

尝试使用示例数据创建热图。它显示了我认为与 iloc 行有关的无效文字值错误。请帮助

标签: python-3.xpandasdataframematplotlibdata-visualization

解决方案


如果您尝试选择两列,请使用

df3 = df[['system area','Incident priority']]

iloc- 是一种基于整数的索引方法

如果您想iloc在上述情况下使用方法,则必须提及列的基于 0 的索引,例如 df.iloc[:, [3,5]]假设您想要所有行并且您的列位于索引 3 和 5

df.iloc- 使用基于整数的选择方法
:- 选择所有行
[3:5]- 选择基于 0 的索引 3 和 5 处的列


推荐阅读