Jsonize Pandas Complex Times Series From Numpy Vector



我有一个numpy 2x10向量

data = np.ones((10,2)

我想用这个格式制作一个JSON字符串:

[{
"times":"2022-11-10 00:00:00",
"values": {
"first": <values of the 1st row>,
"second": <values of the 2nd row>,
}
}
]

到目前为止我做了什么:

dft = pd.DataFrame(data,columns=["first","second"],
index=pd.date_range(start_date, periods=len(data), freq=f"15T")
)
dft.reset_index(inplace=True)
dft = dft.rename(columns={'index': 'times'})
out = dft.to_json(orient='records')

我得到的是:

[{"times":1357041600000,"first":0.0,"second":0.0},{"times":1357042500000,"first":0.0,"second":0.0},{"times":1357043400000,"first":0.0,"second":0.0},{"times":1357044300000,"first":0.0,"second":0.0},{"times":1357045200000,"first":0.0,"second":0.0},{"times":1357046100000,"first":0.0,"second":0.0},{"times":1357047000000,"first":0.0,"second":0.0},{"times":1357047900000,"first":0.0,"second":0.0},{"times":1357048800000,"first":0.0,"second":0.0},{"times":1357049700000,"first":0.0,"second":0.0}]

如何引入1)"值";字段按规范和2)将列时间转换为datetime?的问候!

这里不需要DataFrame,简单的列表理解会更容易:

import json
start_date = '2022-11-10'
dates = pd.date_range(start_date, periods=len(data), freq=f"15T")
out = [json.dumps({"times":f"{time}", 
"values": {"first": a, "second": b}}
) for time, (a, b) in zip(dates, data)
]

输出:

['{"times": "2022-11-11 14:00:00", "values": {"first": 1.0, "second": 1.0}}',
'{"times": "2022-11-11 14:15:00", "values": {"first": 1.0, "second": 1.0}}',
'{"times": "2022-11-11 14:30:00", "values": {"first": 1.0, "second": 1.0}}',
'{"times": "2022-11-11 14:45:00", "values": {"first": 1.0, "second": 1.0}}',
'{"times": "2022-11-11 15:00:00", "values": {"first": 1.0, "second": 1.0}}',
'{"times": "2022-11-11 15:15:00", "values": {"first": 1.0, "second": 1.0}}',
'{"times": "2022-11-11 15:30:00", "values": {"first": 1.0, "second": 1.0}}',
'{"times": "2022-11-11 15:45:00", "values": {"first": 1.0, "second": 1.0}}',
'{"times": "2022-11-11 16:00:00", "values": {"first": 1.0, "second": 1.0}}',
'{"times": "2022-11-11 16:15:00", "values": {"first": 1.0, "second": 1.0}}']

最新更新