将空值添加到pandas数据帧

时间:2014-11-07 16:13:15

标签: python pandas highcharts

我有一个pandas数据框,用于创建一个JSON,后者又用于显示一个高图表。

Pandas数据帧:

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]
]

原因是我需要一个高图表图表,其中某些绘图点是空白的。为此,请指定日期后跟null。

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

感谢您的任何建议。

2 个答案:

答案 0 :(得分: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

这里,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]]

答案 1 :(得分:1)

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

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

而不是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}}'