这是我目前正在使用的代码。
data = {'ID': ['O1', 'O2', 'O3', 'O4'],'DATE': ['2010-09-09','2010-10-15','2011-02-09','2011-08-12'], 'RESULT': [1160, 6112, 21175, 10830]}
df = pd.DataFrame(data) #putting into a dataframe
grouped=df.groupby('ID')['RESULT','DATE'].apply(list) #groupby method and putting into list
运行此代码会得到下表。
ID
O1 [1160, 2010-09-09]
O2 [6112, 2010-10-15]
O3 [21175, 2011-02-09]
O4 [10830, 2011-08-12]
我希望将[RULT,DATE]分隔开,以便格式如下。
ID VL DATES
O1 1160 2010-09-09
O2 6112 2010-10-15
O3 21175 2011-02-09
O4 10830 2011-08-12
有100多行,所以我正在寻找一种合适的方式将它们放在上面的表中。
您只需对结果调用tolist
并将其传递给pd.DataFrame
(这里我使用pipe
使其成为一个很好的单行(:
>>> df.groupby('ID')[['RESULT','DATE']].apply(list).pipe(lambda x: pd.DataFrame(x.tolist(), index=x.index, columns=['VL', 'DATE']))
VL DATE
ID
O1 RESULT DATE
O2 RESULT DATE
O3 RESULT DATE
O4 RESULT DATE