错误: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
这里是我的代码
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)
发布于 2021-12-17 20:04:49
你可以用x轴上的县来绘制条形图,方法是像这样重塑你的数据。
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轴,然后使用Population
和Confirmed cases
中的值来生成条形图。
图看起来是这样的:
https://stackoverflow.com/questions/70396351
复制相似问题