highcharts 将空值添加到Pandas Dataframe

gdx19jrr  于 2022-11-10  发布在  Highcharts
关注(0)|答案(3)|浏览(237)

我有一个Pandas Dataframe ,用于创建JSON,而JSON又用于显示highcharts图表。
Pandas Dataframe :

Date        colA    colB
12-Sep-14   20      40
13-Sep-14   50      10
14-Sep-14   12      -20
15-Sep-14   74      43

是否有办法将colA和colB的值更改为null?原因是我最终需要一个如下所示的JSON:

[
    [12-Sep-14, 20, 40],
    [13-Sep-14, null, null],
    [14-Sep-14, 12, -20],
    [15-Sep-14, 74, 43]
]

这样做的原因是我需要一个highcharts图表,其中某些绘图点是空白的。要做到这一点,您指定的日期后接空。
因此,我需要更新Pandas Dataframe 中的某些值,这样,一旦我使用.to_json()将其转换为JSON,json将包含指定的空值,如上面的示例所示。
谢谢你的建议。

lb3vh1jj

lb3vh1jj1#

尝试使用NaN,这是Pandas缺少的值:

from numpy import nan 

df = pd.read_clipboard()
df.colA.iloc[1] = NaN

您也可以使用None来代替NaN。请注意,这些术语都不带引号。
然后,您可以使用to_json()来取得输出:

df.to_json()
'{"Date":{"0":"12-Sep-14","1":"13-Sep-14","2":"14-Sep-14","3":"15-Sep-14"},"colA":{"0":20.0,"1":null,"2":12.0,"3":74.0},"colB":{"0":40,"1":10,"2":-20,"3":43}}'
ewm0tg9j

ewm0tg9j2#

这有用吗?

import pandas as pd

# Read in data frame from clipboard

df = pd.read_clipboard()
df = df.replace(df.iloc[1][1:],'null')

        Date  colA  colB
0  12-Sep-14    20    40
1  13-Sep-14  null  null
2  14-Sep-14    12   -20
3  15-Sep-14    74    43

这里,df.iloc[1]提供对第1行的访问
最后,

df.to_json(orient='values').replace("\"","")

提供json而不使用“”

[[12-Sep-14,20,40],[13-Sep-14,null,null],[14-Sep-14,12,-20],[15-Sep-14,74,43]]
u0njafvf

u0njafvf3#

代码如下:

import numpy as np

# create null/NaN value with np.nan

df.loc[1, colA:colB] = np.nan

以下是解释:
1.找到需要替换的实体:df.loc[1, colA:colB]表示选择第1行和从colA到colB的列;
1.将NaN值np.nan分配给特定位置。

相关问题