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