python pandas按值创建一个列表组

时间:2018-08-05 11:24:25

标签: python pandas pivot-table pandas-groupby data-munging

我在python中有一个数据框:

    pID     sID     time 
0   2133    152414  2018-06-16
1   1721    152912  2018-06-17
2   2264    152912  2018-06-18

我想用sID作为键和pID列表创建一个新表:

        pID time
152414 2133 2018-06-16
152912 1721 2018-06-17
       2264 2018-06-18

在不重复所有数据帧的情况下执行此操作的最佳方法是什么?  我尝试过:

df.pivot(index='sID', columns=['pID', 'time'])

但是得到了:

  

ValueError:所有数组的长度必须相同

对于这些3行表 谢谢!

1 个答案:

答案 0 :(得分:0)

尝试一下:

import io
import pandas as pd

f = io.StringIO('''
2133    152414  2018-06-16
1721    152912  2018-06-17
2264    152912  2018-06-18''')

df = pd.read_csv(f, sep='\s+', header=None, names=['pID', 'sID', 'date'])
df.set_index(['sID', 'pID'])

Results