如何在pandas DataFrame中合并同索引不同列的字符串
实现方案
核心逻辑为两步:先按index分组填充name列的空值,再将填充后的name与lst列用空格拼接即可。
具体实现代码如下:
import pandas as pd import numpy as np # 构造测试数据,空白name值统一替换为NaN方便处理 df = pd.DataFrame({ "index": [0,0,0,1,1], "name": ["a", "", "", "", "b"], "lst": ["c","d","e","f","g"] }) # 若你的空值是空白字符串,先执行转换为NaN df["name"] = df["name"].replace("", np.nan) # 按index分组,取组内第一个非空的name填充所有行,直接拼接得到combine列 df["combine"] = df.groupby("index")["name"].transform(lambda x: x.dropna().iloc[0]) + " " + df["lst"]
如果确认每个分组的非空name一定在组内首行/末行,也可以把transform里的lambda替换为更高效的'first'/'last'参数。
内容的提问来源于stack exchange,提问作者ye_c_
相关产品推荐
相关产品推荐

