pandas 如何< NA>在Streamlit中使用st.dataframe()或st.table()隐藏““(NaN)值?

0tdrvxhp  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(204)

当我在Streamlit中使用st.dataframe()st.table()显示Pandas DataFrame时,NaN值显示为文本<NA>。我想隐藏它们。

代码:

第一个

原始结果:

预期结果:

隐藏包含<NA>的单元格,但不隐藏那些行,因为它们给予了其他行的上下文。任何允许值以固定精度(例如,2个小数位)右对齐的方法都可以。(理想情况下,我希望这样做时不将这些列中的值转换为字符串,但这不是一个硬性要求。)
我知道我没有按照预期的方式使用DataFrame,但它们似乎是我在Streamlit中显示表的唯一机制。

iaqfqrcu

iaqfqrcu1#

我尝试使用pandas.io.formats.style.Styler.highlight_null设置“不透明度:0”或“可见性:隐藏”,但Streamlit似乎忽略了这些CSS属性。
我通过使用WebStorm和PyCharm找到了这个解决方案:

# table.py
import pandas as pd
import streamlit as st

df = pd.read_csv("nlp_metrics_v2.csv", header=0)
df = df.style.highlight_null(props="color: transparent;")  # hide NaNs
st.dataframe(df)
ymdaylpp

ymdaylpp2#

要隐藏 Dataframe 中的NaN值(您希望使用st.dataframe(df)显示该值),只需将相应的条目转换为字符串,并将"nan"替换为空格字符" "
下面是替换列中所有NaN值的代码:
df['column'] = df['column'].astype(str).replace("nan", " ")

相关问题