猿问

Python - 尝试存储列表数组时陷入循环

我正在遍历数据框并尝试存储每个 id 的“总”列表。


数据框如下所示:


id    total    difference

 1     29         3

 1     21         2

 2     39         0

 2     22         9

到目前为止我尝试过的:


total_list=[]

for i, row in df.iterrows(): 

    total_list.extend(df.total.loc[df.id==row.id].tolist())


print(total_list) # this never gets print

total_list 应该看起来像 [[29, 21], [39,22]]


慕桂英3389331
浏览 139回答 1
1回答

慕沐林林

只要我理解正确,就可以在不循环的情况下完成此操作。 我假设输出中的 31 应该是 21。设置>>> df = pd.DataFrame([[1,29,3],[1,21,2],[2,39,0],[2,22,9]], columns=['id', 'total','difference'])>>>>>> df   id  total  difference0   1     29           31   1     21           22   2     39           03   2     22           9解决方案>>> df.groupby('id')['total'].apply(list).tolist()[[29, 21], [39, 22]]
随时随地看视频慕课网APP

相关分类

Python
我要回答