我有一个这样的数据框:
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
)执行此操作。我可以在不遍历每一列的情况下做到这一点吗?
最佳答案
您可以使用 .agg
.
df.groupby('time').agg(lambda x: list(x) if len(x) > 1 else x.iloc[0])
输出:
val1 val2
time
0.0 a 12
0.1 [b, c] [13, 14]
0.2 d 15
关于python - 在 Pandas 数据框中合并具有相同浮点索引的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48999774/