1

使用 Streamlit 构建数据接口时出现语法错误。我下载的 csv 数据框有一列“受伤人数”,在使用 panda 将其转换为数据框并尝试使用查询函数对其进行引用后,我收到如下错误。我在数据框中将文本转换为小写。我附上了错误消息和示例 csv 文件屏幕截图。Github 有代码和示例 csv 文件。我的问题是:

1.如何解决这个错误? 2.它的根本原因是什么?

有问题的代码:

injured_people = st.slider("", 0, 19)
st.map(data.query("number of persons injured > @injured_people")[["latitude", "longitude"]].dropna(how="any"))

错误信息

csv 受伤人数的样本照片

我尝试过的事情:

  • 增加''受伤人数以转换为string. 但随后得到关于 st.slider 存在int且无法 >在 str 和 int 之间操作的错误。

  • 通过转换下划线受伤的人数来破解 csv,number_of_persons_injured但这会引发未定义的错误。

  • 将@injured_people 转换为字符串。是的,我知道愚蠢。String() 未定义的错误。

    受伤的人 = st.slider("", 0, 19)

    受伤的人=字符串(受伤的人)

Git 文件:https ://github.com/petersun825/Bike_Crash_Dashboard_NYC/blob/master/app.py

4

2 回答 2

0

您可以尝试将列名编辑为更简单的名称,例如受伤的人。然后重新启动您的设备并尝试再次运行 streamlit

于 2020-06-22T01:00:33.760 回答
0

pandas 不知道您对带有空格的列名的含义,这导致它尝试查找 column number。您可以使用反引号转义空格:

st.map(data.query("`number of persons injured` > @injured_people")[["latitude", "longitude"]].dropna(how="any"))
于 2020-06-01T12:44:11.780 回答