Python Altair/Streamlight未读取多行图表的列名
我有一个数据框,其列名的形式为Python Altair/Streamlight未读取多行图表的列名,python,altair,streamlit,Python,Altair,Streamlit,我有一个数据框,其列名的形式为'State1-City-1-1','State1-City-1-2'…等等。当我运行streamlight代码:st.line\u chart(df)时,我得到错误: ValueError:指定的变量编码字段没有类型;这个 无法推断类型,因为它与中的任何列都不匹配 资料 出于测试目的,如果我将所有列名更改为整数,则会得到所需的图表。当您看到此错误时,表示图表中使用的列名与数据框中的列名不匹配。在您的情况下,我怀疑这可能是由于使用了不同类型的连字符造成的。例如: >
'State1-City-1-1'
,'State1-City-1-2'
…等等。当我运行streamlight代码:st.line\u chart(df)
时,我得到错误:
ValueError:指定的变量编码字段没有类型;这个
无法推断类型,因为它与中的任何列都不匹配
资料
出于测试目的,如果我将所有列名更改为整数,则会得到所需的图表。当您看到此错误时,表示图表中使用的列名与数据框中的列名不匹配。在您的情况下,我怀疑这可能是由于使用了不同类型的连字符造成的。例如:
>>“州1-城市-1-1”==“州1-城市-1-1”
假的
第一个字符串中的'-'
字符是连字符,而第二个字符串中的'-'
字符是em破折号;虽然它们在某些字体中看起来相似,但它们并不相同
确保图表中的字段名与数据中的列名完全匹配。感谢您的关注。我完全删除了空格和“-”,但仍然失败。我没有明确指定要打印的列,它是多行打印,所以我希望它打印所有列。我有一个load_data()函数,输出直接传递给st.line_图表(df)。另外,我应该补充一点,st.dataframe(df)可以正常工作。我的数据透视表有一个名为的列索引。删除列索引名称修复了它。我必须显式地将列名指定为字符串(即使它们以前是字符串),以便plot to work-df.columns=[str(col)for col in df.columns]