我有一个数据框列表,每个数据框的格式如下:
id time prob
392 13619782 2018-02-11 21:30:42 0.149796
393 12926892 2018-02-11 21:30:42 0.025866
394 12585081 2018-02-11 21:30:42 0.031470
395 10445552 2018-02-11 21:30:42 0.511263
396 360761 2018-02-11 21:30:42 0.030153
397 17162003 2018-02-11 21:30:42 0.068670
398 11387266 2018-02-11 21:30:42 0.182782
时间列在每个数据帧中不变,id列是从数据帧到数据帧的相同列表,即下一个数据帧如下所示:
id time prob
413 13619782 2018-02-11 21:30:57 0.171445
414 12926892 2018-02-11 21:30:57 0.024932
415 12585081 2018-02-11 21:30:57 0.030125
416 10445552 2018-02-11 21:30:57 0.504263
417 360761 2018-02-11 21:30:57 0.027320
418 17162003 2018-02-11 21:30:57 0.062276
419 11387266 2018-02-11 21:30:57 0.179639
我想要的是一个新的数据帧,其中每个数据帧代表一行,其唯一的时间值作为行的索引,id列的值作为列名。例如:
time 13619782 12585081 12585081 10445552 360761 17162003 11387266
2018-02-11 21:30:42 0.149796 0.025866 0.031470 0.511263 0.030153 0.068670 0.182782
2018-02-11 21:30:57 0.171445 0.024932 0.030125 0.504263 0.027320 0.062276 0.179639
我在发布之前确实搜索过类似的问题,但找不到任何内容,但如果之前有人问过/已经回答,我很抱歉。我对熊猫/数据分析比较陌生,甚至不确定这个程序会被调用,所以除了“分组/合并数据帧”之外,不确定使用哪些搜索术语。
答案 0 :(得分:1)
将两个数据框(假设pivot
和df1
)与df2
合并后,您可以尝试append
(details):
result_df = df1.append(df2, ignore_index=True).pivot(index='time', columns='id', values='prob')
result_df
输出:
id 360761 10445552 11387266 12585081 12926892 \
time
2018-02-11 21:30:42 0.030153 0.511263 0.182782 0.031470 0.025866
2018-02-11 21:30:57 0.027320 0.504263 0.179639 0.030125 0.024932
id 13619782 17162003
time
2018-02-11 21:30:42 0.149796 0.068670
2018-02-11 21:30:57 0.171445 0.062276