我正尝试将以下列表转换为一个表格,如下所示。
列表:
val_list = [['ALPHA01', [[1573582200000, 96.96746826171875], [1573582260000, 97.45691935221355], [1573582320000, 97.4244893391927], [1573582380000, 97.32177734375], [1573582440000, None], [1573582500000, None]]], ['BETA01', [[1573582200000, 89.6187235514323], [1573582260000, 90.69141642252605], [1573582320000, 90.83389282226562], [1573582380000, 90.83180745442708], [1573582440000, 90.72371419270833], [1573582500000, None]]], ['ALPHA02', [[1573582200000, 96.67467244466145], [1573582260000, 97.1467997233073], [1573582320000, 97.23036702473958], [1573582380000, 97.26894124348958], [1573582440000, None], [1573582500000, None]]], ['BETA02', [[1573582200000, 90.92616780598958], [1573582260000, 91.39727783203125], [1573582320000, 91.28725179036458], [1573582380000, 91.39530436197917], [1573582440000, 91.26514689127605], [1573582500000, None]]]]
所需的表格格式
TimeStamp ALPHA01 BETA01 ALPHA02 BETA02
1573582200000 96.96746826 89.61872355 96.67467244 90.92616781
1573582260000 97.45691935 90.69141642 97.14679972 91.39727783
1573582320000 97.42448934 90.83389282 97.23036702 91.28725179
1573582380000 97.32177734 90.83180745 97.26894124 91.39530436
1573582440000 None 90.72371419 None 91.26514689
1573582500000 None None None None
在获得上述表格格式方面我没有取得很大的成功。
这就是我所做的
df = pd.DataFrame(val_list, columns =['value1','Value2'])
print(df)
输出:
value1 Value2
0 PRODLMS1 [[1573582200000, 96.96746826171875], [15735822...
1 PRODCAS1 [[1573582200000, 89.6187235514323], [157358226...
2 PRODLMS2 [[1573582200000, 96.67467244466145], [15735822...
3 PRODCAS2 [[1573582200000, 90.92616780598958], [15735822...
答案 0 :(得分:2)
我认为您可以做一个简单的循环:
pd.concat([pd.DataFrame(x[1])
.set_index(0)
.rename(columns={1:x[0]})
for x in val_list],
axis=1
)
输出:
ALPHA01 BETA01 ALPHA02 BETA02
0
1573582200000 96.967468 89.618724 96.674672 90.926168
1573582260000 97.456919 90.691416 97.146800 91.397278
1573582320000 97.424489 90.833893 97.230367 91.287252
1573582380000 97.321777 90.831807 97.268941 91.395304
1573582440000 NaN 90.723714 NaN 91.265147
1573582500000 NaN NaN NaN NaN
答案 1 :(得分:0)
另一种解决方案:
val_list = [['ALPHA01', [[1573582200000, 96.96746826171875], [1573582260000, 97.45691935221355], [1573582320000, 97.4244893391927], [1573582380000, 97.32177734375], [1573582440000, None], [1573582500000, None]]], ['BETA01', [[1573582200000, 89.6187235514323], [1573582260000, 90.69141642252605], [1573582320000, 90.83389282226562], [1573582380000, 90.83180745442708], [1573582440000, 90.72371419270833], [1573582500000, None]]], ['ALPHA02', [[1573582200000, 96.67467244466145], [1573582260000, 97.1467997233073], [1573582320000, 97.23036702473958], [1573582380000, 97.26894124348958], [1573582440000, None], [1573582500000, None]]], ['BETA02', [[1573582200000, 90.92616780598958], [1573582260000, 91.39727783203125], [1573582320000, 91.28725179036458], [1573582380000, 91.39530436197917], [1573582440000, 91.26514689127605], [1573582500000, None]]]]
index = [x[0] for x in val_list[0][1]]
val_dict = dict(val_list)
df = pd.DataFrame(val_dict, index=index)
for col in df.columns:
df[col] = [elem[1] for elem in df[col]]
df
ALPHA01 BETA01 ALPHA02 BETA02
1573582200000 96.967468 89.618724 96.674672 90.926168
1573582260000 97.456919 90.691416 97.146800 91.397278
1573582320000 97.424489 90.833893 97.230367 91.287252
1573582380000 97.321777 90.831807 97.268941 91.395304
1573582440000 NaN 90.723714 NaN 91.265147
1573582500000 NaN NaN NaN NaN