我有一个这样的数据框:
val1 val2
time
0.0 a 12
0.1 b 13
0.1 c 14
0.2 d 15
我想将这些行合并到同一时间看起来像:
val1 val2
time
0.0 a 12
0.1 [b,c] [13, 14]
0.2 d 15
基于this answer,我可以通过选择一列(比如val
)来操作系列:
df.groupby('time')['val1'].apply(lambda x: list(x) if len(x) > 1 else x.iloc[0])
并获得:
time
0.0 a
0.1 [b, c]
0.2 d
Name: val1, dtype: object
但我想对所有列(val1
和val2
)执行此操作。我可以不循环遍历每一列吗?