【问题标题】:How to remove NaN in bokeh table如何在散景表中删除 NaN
【发布时间】:2019-11-01 04:50:40
【问题描述】:

我使用散景小部件表显示数据,我使用 Dateformatter 格式化日期,但空日期在散景表中显示“NaN/NaN/NaN”,如何删除这些 NaN?

import numpy as np
from bokeh.io import output_notebook
output_notebook()

c, conn = connection()

sqlString = "SELECT * FROM Database.SQLTable;"
df = pd.read_sql_query(sqlString, conn)
c.close()
conn.close()

#df = df.replace(np.nan, '', regex=True)

cols = [
    TableColumn(field='ID', title='ID'),
    TableColumn(field='Activity_Title', title='Activity_Title'), 
    TableColumn(field='Originator', title='Originator'), 
    TableColumn(field='Country', title='Country'), 
    TableColumn(field='Activity_Date', title='Activity_Date', formatter=DateFormatter(format="%m/%d/%Y")), 
    TableColumn(field='record_insert_datetime', title='record_insert_datetime', formatter=DateFormatter(format="%m/%d/%Y"))
]     

data_table = DataTable(columns=cols, source=ColumnDataSource(df), fit_columns=True)

当前结果显示:

如何用空字符串替换那些“NaN/NaN/NaN”?

【问题讨论】:

    标签: python bokeh


    【解决方案1】:

    你试过DataFrame的“fillna”功能吗?

    示例如下:

    df["record_insert_datetime"].fillna("0/0/0", inplace = True)
    

    【讨论】:

    • 谢谢 Umesh,我刚刚尝试了两种方法:df["record_insert_datetime"].fillna("0/0/0", inplace = True)df["record_insert_datetime"].fillna("00/00/0000", inplace = True),两者都显示相同的结果“01/01/1970”而不是“NaN/NaN/NaN”。但我希望它为空,“01/01/1970”不正确。谢谢
    • 太棒了!我将它应用于我的字符串。我期望在 StringFormatter 中有一个选项,但通过这种方式解决了。
    【解决方案2】:

    在散景版本2.2DateFormatter 中有nan_format

    使用DateFormatter(nan_format="-")给:

    Github issue related to development

    【讨论】:

      猜你喜欢
      • 2017-10-29
      • 2014-03-13
      • 2016-07-14
      • 2019-11-19
      • 2018-09-23
      • 2020-09-18
      • 1970-01-01
      • 2014-01-27
      • 2018-05-25
      相关资源
      最近更新 更多