将空值添加到 Pandas 数据帧

dar*_*ool 4 python highcharts pandas

我有一个用于创建 JSON 的 Pandas 数据框,而后者又用于显示 highcharts 图表。

熊猫数据框:

Date        colA    colB
12-Sep-14   20      40
13-Sep-14   50      10
14-Sep-14   12      -20
15-Sep-14   74      43
Run Code Online (Sandbox Code Playgroud)

有没有办法将某些 colA 和 colB 值更改为 null。这样做的原因是我最终需要一个看起来像这样的 JSON:

[
    [12-Sep-14, 20, 40],
    [13-Sep-14, null, null],
    [14-Sep-14, 12, -20],
    [15-Sep-14, 74, 43]
]
Run Code Online (Sandbox Code Playgroud)

这样做的原因是我需要一个 highcharts 图表,其中某些绘图点是空白的。为此,您指定日期后跟空值。

所以我需要以某种方式更新 pandas 数据帧中的某些值,以便一旦我使用 .to_json() 将其转换为 JSON,那么 json 将包含指定的空值,如上例所示。

感谢您的任何建议。

JD *_*ong 5

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

df = pd.read_clipboard()
df.colA.iloc[1] = NaN
Run Code Online (Sandbox Code Playgroud)

除了 NaN,您还可以使用 None。请注意,这些术语都没有输入引号。

然后你可以使用 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}}'
Run Code Online (Sandbox Code Playgroud)

  • 除非您指定`from numpy import nan`,否则这将不起作用。原因是`nan` 不是来自pandas,而是来自numpy。 (11认同)

use*_*827 2

这有效吗?

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
Run Code Online (Sandbox Code Playgroud)

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

最后,

df.to_json(orient='values').replace("\"","")
Run Code Online (Sandbox Code Playgroud)

给出不带“”的 json

[[12-Sep-14,20,40],[13-Sep-14,null,null],[14-Sep-14,12,-20],[15-Sep-14,74,43]]
Run Code Online (Sandbox Code Playgroud)