首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复StreamlitAPIException:(“预期字节,得到一个'int‘对象”,’类型对象的列值转换失败‘)

如何修复StreamlitAPIException:(“预期字节,得到一个'int‘对象”,’类型对象的列值转换失败‘)
EN

Stack Overflow用户
提问于 2021-12-17 16:44:28
回答 1查看 1.2K关注 0票数 0

错误StreamlitAPIException: ("Expected bytes, got a 'int' object", 'Conversion failed for column value with type object')

溯源File "/Users/temporaryadmin/Streamlit_app_v.1/streamlit_app_v1/main.py", line 48, in <module> st.line_chart(df)

Problem:我对此非常陌生,并且对我的第一个Streamlit项目感到非常兴奋。该文件运行良好,我不包括pandas_data = {'County': county_names},但是存储在"county_names“中的字符串列表对于表示图形中的数据非常重要。

如能提供任何帮助,我们将不胜感激,谢谢。enter code here

这里是我的代码

代码语言:javascript
运行
复制
import streamlit as st
import pandas as pd
import requests

bas_url = 'https://services1.arcgis.com/eNO7HHeQ3rUcBllm/arcgis/rest/services/Covid19CountyStatisticsHPSCIrelandOpenData/FeatureServer/0/query?where=1%3D1&outFields=CountyName,PopulationCensus16,ConfirmedCovidCases,PopulationProportionCovidCases&outSR=4326&f=json'
response = requests.get(bas_url)
print(response)
get_json_response = requests.get(bas_url).json()

data = []
for i in get_json_response['features']:
    data.append(i)

# List comprehension
new_data = [i['attributes'] for i in data]

#  All variables below containing lists of data from api request
county_names = [i['CountyName'] for i in new_data]
population_total_2016 = [i['PopulationCensus16'] for i in new_data]
confirmed_cases = [i['ConfirmedCovidCases'] for i in new_data]

pandas_data = {
    'County': county_names,
    'Population': population_total_2016,
    'Confirmed cases': confirmed_cases
}

df = pd.DataFrame(pandas_data)
st.write(df)
st.line_chart(df)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-17 20:04:49

你可以用x轴上的县来绘制条形图,方法是像这样重塑你的数据。

代码语言:javascript
运行
复制
import streamlit as st
import pandas as pd
import requests

bas_url = 'https://services1.arcgis.com/eNO7HHeQ3rUcBllm/arcgis/rest/services/Covid19CountyStatisticsHPSCIrelandOpenData/FeatureServer/0/query?where=1%3D1&outFields=CountyName,PopulationCensus16,ConfirmedCovidCases,PopulationProportionCovidCases&outSR=4326&f=json'
response = requests.get(bas_url)
print(response)
get_json_response = requests.get(bas_url).json()

data = []
for i in get_json_response['features']:
    data.append(i)

# List comprehension
new_data = [i['attributes'] for i in data]

#  All variables below containing lists of data from api request
county_names = [str(i['CountyName']) for i in new_data]
population_total_2016 = [i['PopulationCensus16'] for i in new_data]
confirmed_cases = [i['ConfirmedCovidCases'] for i in new_data]

pandas_data = {
    'County': county_names,
    'Population': population_total_2016,
    'Confirmed cases': confirmed_cases
}

df = pd.DataFrame(pandas_data)
df = df.groupby('County')[['Population', 'Confirmed cases']].sum()
st.write(df)
st.bar_chart(df)

对数据数据进行分组并将县设置为dataframe索引将告诉streamlit使用它们作为x轴,然后使用PopulationConfirmed cases中的值来生成条形图。

图看起来是这样的:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70396351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档