背景
已知一个dataframe大概长这样:
A 1
A 2
B 3
B 4
B 5
C 6
目标
按照第一列分组,将多行数值聚合到list里,如下
A [1,2]
B [3,4,5]
C [6]
解决方案
import pandas as pd
df = pd.DataFrame(
{
"ID":["A","A","B","B","B","C"],
"num":[1,2,3,4,5,6]
}
)
df.groupby("ID")["num"].apply(list).reset_index(name="nums")
ID nums
0 A [1, 2]
1 B [3, 4, 5]
2 C [6]