如何将列表值放入两列中



这是我目前正在使用的代码。

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

最新更新