我需要转换此DataFrame:
meterid timestamp value
123 2018-04-09T21:34:55.335Z 0
123 2018-05-10T21:34:55.335Z 10
456 2018-04-09T21:34:55.335Z 200
转换为以下格式:
{
"data":{
"123":[
[
"2018-04-09T21:34:55.335Z",
0
],
[
"2018-05-10T21:34:55.335Z",
10
]
],
"456":[
[
"2018-04-09T21:34:55.335Z",
200
]
]
}
}
转换的最佳方式是什么?我尝试了不同orient
值的to.dict()
,但它没有给予我想要的。任何帮助将不胜感激。提前感谢。
4条答案
按热度按时间s3fp2yjn1#
有点笨拙,但是你可以在字典里做一行和存储:
如果meterid不是唯一的,则会给予问题,但如果它是唯一的,则应该可以工作。
fkvaft9z2#
您可以:
dict((df.index[i],df.iloc[i,1:].to_list()) for i in range(len(df)))
作为一个快速而肮脏的选择。
z31licg03#
我会用下面的代码将所有数据列合并为一列:
然后,我将使用下面的代码生成您指定的输出:
由于提示符中的meterid不是唯一的,所以我在编写这段代码时假设meterid不是 Dataframe 的索引。
1sbrub3j4#
输出: