如何根据特定列中的唯一元素对数据框行进行分组?

How to group dataframe rows on unique elements in a specific column?

例如,如何根据特定列 tidx 中的共享值将行收集到矩阵中,从而将 df 转换为 df1

>>> df = pd.DataFrame({'col3':[[1,40],[2,50],[3,60],[4,70]], 'tidx':[21,22,23,21]})

>>> df['col3'] = df['col3'].apply(np.array)

>>> df
      col3  tidx
0  [1, 40]    21
1  [2, 50]    22
2  [3, 60]    23
3  [4, 70]    21

>>> df1 = pd.DataFrame({'col3':[[[1,40],[4,70]],[[2,50]],[[3,60]]], 'tidx':[21,22,23]})

>>> df1['col3'] = df1['col3'].apply(np.array)


>>> df1
                 col3  tidx
0  [[1, 40], [4, 70]]    21
1           [[2, 50]]    22
2           [[3, 60]]    23


您可以使用 .groupby,然后应用 list 函数,如下例所示。

df = pd.DataFrame({'col3':[[1,40],[2,50],[3,60],[4,70]], 'tidx':[21,22,23,21]})
df1 = df.groupby('tidx')['col3'].apply(list).reset_index()