python pandas 按值创建列表组

python pandas create a list group by value

我在 python 中有一个数据框:

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

我想创建一个新的 table 以 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: all arrays must be same length

对于这 table 行,共 3 行 谢谢!

试试这个:

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'])