Altair/Streamlit 未读取多线图的列名
Posted
技术标签:
【中文标题】Altair/Streamlit 未读取多线图的列名【英文标题】:Altair/Streamlit not reading column name for multiline chart 【发布时间】:2021-03-20 11:10:31 【问题描述】:我的数据框的列名格式为'State1 - City - 1-1'
、'State1 - City - 1-2'
....etc。当我运行 streamlit 代码时:st.line_chart(df)
,我得到错误:
ValueError: 变量编码字段没有指定类型;这 无法推断类型,因为它与 数据
出于测试目的,如果我将所有列名更改为整数,我会得到所需的图表。
【问题讨论】:
【参考方案1】:当您看到此错误时,表示图表中使用的列名与数据框中的列名不匹配。就您而言,我怀疑这可能是由于使用了不同类型的连字符造成的。例如:
>>> 'State1 - City - 1-1' == 'State1 – City – 1-1'
False
第一个字符串中的'-'
字符是连字符,而第二个字符串中的'–'
字符是破折号;尽管它们在某些字体中看起来相似,但它们并不等同。
确保图表中的字段名称与数据中的列名称完全匹配。
【讨论】:
感谢您对此进行调查。我完全删除了空格和“-”,但它仍然失败。我没有明确指定要绘制的列,它是一个多线图,所以我希望它能够绘制所有列。我有一个 load_data() 函数,输出直接传递给 st.line_chart(df) 另外,我应该补充一点,st.dataframe(df) 有效 已修复。我的数据透视表有一个带有名称的列索引。删除列索引名称修复了它。 我必须将列名明确指定为字符串(即使它们之前是字符串)才能进行绘图 - df.columns = [str(col) for col in df.columns]以上是关于Altair/Streamlit 未读取多线图的列名的主要内容,如果未能解决你的问题,请参考以下文章
是否有通用的方法来读取spark中的多线json。更具体的是火花?