在 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数据框

在 pyspark 数据框中循环遍历两列时将值添加到新列

如何在 Streamlit 中将 Pandas DataFrame 下载到 CSV 文件

Python:如何在比较其他列时将列值填充到另一个数据框中的新列?

尝试将 csv 文件加载到雪花数据库时出现“在预期解析列时到达记录结尾”错误