我有一个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将包含指定的空值,如上例所示。
感谢您的任何建议。
答案 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}}'