【发布时间】:2018-08-25 18:18:02
【问题描述】:
我有一个熊猫数据框列表df_list。在该列表中,有 4 个数据框在列名和行数方面看起来很相似。
一个示例数据框,位于列表的索引 0:
df_list[0]:
str_col vals1 vals2
hi [1,2,3,5] [0.4,0.4,0.5, 0.1]
hagha [1,3,3,5] [0.1,0.4,0.5, 0.1]
me [4,4,3,5] [0.9,0.4,0.5, 0.1]
i know [1,4,3,5] [0.1,0.7,0.9, 0.0]
在所有数据框中,str_col 列保持不变。它没有改变。只有vals1 和vals2 更改。 vals1 和 vals2 是列表。 str_col 是字符串。
我最终想要的是数据框列表中的 json:
hi
- list index 0:
- vals1
- vals2
- list index 1:
- vals1
- vals2
- list index 2:
- vals1
- vals2
- list index 3:
- vals1
- vals2
- list index 4:
- vals1
- vals2
hagha
- list index 0:
- vals1
- vals2
- list index 1:
- vals1
- vals2
- list index 2:
- vals1
- vals2
- list index 3:
- vals1
- vals2
- list index 4:
- vals1
- vals2
and so on
以下更好的版本:(请不要将 vals1 和 vals2 的值与上面的示例进行比较)。
{
"final_json": {
"hi": {
"0": {
"vals1": [
1,
2,
3,
5
],
"vals2": [
0.4,
0.4,
0.5,
0.1
]
},
"1": {
"vals1": [
8,
5,
5,
3
],
"vals2": [
1,
0,
0,
0
]
},
"2": {
"vals1": [
2,
3,
6,
7
],
"vals2": [
1,
0,
0,
0
]
},
"3": {
"vals1": [
3,
3,
5,
3
],
"vals2": [
1,
0,
0,
0
]
}
},
"hagha": {
"0": {
"vals1": [
6,
8,
9,
0
],
"vals2": [
0.76,
0.76,
0.36,
0.363
]
},
"1": {
"vals1": [
2,
3,
4,
6
],
"vals2": [
0.63,
0.36,
0.46,
0.6
]
},
"2": {
"vals1": [
3,
6,
5,
5
],
"vals2": [
0.4,
0.64,
0.46,
0.456
]
},
"3": {
"vals1": [
4,
6,
3,
2
],
"vals2": [
0.657,
0.675,
0.64,
0.6
]
}
.
.
.
.
.
]
}
}
}
}
目前我正在遍历列表中的所有数据帧,而且速度太慢。我想知道是否存在更快的解决方案来实现这一点(可以to_json)?
【问题讨论】:
-
你试过df.to_json(orient='index')
-
对于一个数据框?是的,它没有给我所需的结果。请看,有超过 1 个数据框。
-
您是否尝试过从数据框列表中创建一个数据框? new_df = pd.concat(df_list).reset_index()
-
是的。我也尝试将其转换为多索引,但 json 结果不是我循环时得到的结果。
标签: python json list pandas dataframe