我有两个对象系列,一个在前,一个在后,按名称分组。
我通过以下代码生成它们:
beforeseries = df.groupby('name', dropna=True)['order'].apply(list)
print(beforeseries)
afterseries = df.groupby('name', dropna=True)['order'].apply(list)
print(afterseries)
生成以下输出:
系列之前:
名称1 [第一,第二,第三] 名称2 [第一、第二、第三] Name_n [第一,第二,第三,第四]
后记:
姓名1[第四、第五] 名称2 [第四、第五、第六] Name_n [第五、第六]
我想加入他们,所以输出如下所示”
名称 1 [‘第一第二第三’, ‘第四第五’] 名称 2 ['第一第二第三','第四第五第六'] 名称 3 [‘第一第二第三第四’,‘第五第六’]
闻起来像 XY 问题。此外,生成两个系列的代码是相同的。
concat
两个对象:
out = (
pd.concat([beforeseries, afterseries], axis=1)
.groupby(level=0, axis=1).agg(lambda x: x.to_numpy().tolist())
)
输出:
print(out)
order
name
A [v x, o q]
B [y, r]
C [w z, p s]
使用的输入:
df = pd.DataFrame({"name": list("ACABC"), "order": list("vwxyz")})
beforeseries = df.groupby("name", dropna=True)["order"].agg(" ".join)
df = pd.DataFrame({"name": list("ACABC"), "order": list("opqrs")})
afterseries = df.groupby("name", dropna=True)["order"].agg(" ".join)