在 CSV 数据框中查找列时 Streamlit Panda 查询函数语法错误
Posted
技术标签:
【中文标题】在 CSV 数据框中查找列时 Streamlit Panda 查询函数语法错误【英文标题】:Streamlit Panda Query Function Syntax Error When Finding Column in CSV Dataframe 【发布时间】:2020-09-18 19:17:15 【问题描述】:使用 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"))
Error Message
csv sample shot of number of persons injured
我尝试过的事情:
将''
添加到受伤人数以转换为string
。但
然后得到关于 st.slider 是 int
并且无法使用的错误
>
在 str 和 int 之间。
通过转换受伤人数来破解 csv
下划线number_of_persons_injured
但这会引发 undefined
错误。
将@injured_people 转换为字符串。是的,我知道愚蠢。 String() 未定义错误。
injured_people = st.slider("", 0, 19)
injured_people = string(injured_people)
Git 文件:https://github.com/petersun825/Bike_Crash_Dashboard_NYC/blob/master/app.py
【问题讨论】:
【参考方案1】:pandas 不知道您对带有空格的列名的含义,这导致它尝试查找列 number
。您可以使用反引号转义空格:
st.map(data.query("`number of persons injured` > @injured_people")[["latitude", "longitude"]].dropna(how="any"))
【讨论】:
【参考方案2】:您可以尝试将列名编辑为更简单的名称,例如受伤的人。然后重新启动您的设备并再次尝试运行 streamlit
【讨论】:
以上是关于在 CSV 数据框中查找列时 Streamlit Panda 查询函数语法错误的主要内容,如果未能解决你的问题,请参考以下文章
在 read_csv 之后选择 pandas 数据框中的列时出现关键错误
如何在streamlit中从用户读取csv文件并转换为pandas数据框
如何在 Streamlit 中将 Pandas DataFrame 下载到 CSV 文件