如何在pandas DataFrame中按行拼接字符串并生成新行?
在pandas中按行拼接字符串生成新行
要实现将指定行(如索引3和4)的对应单元格字符串拼接,生成目标Series,可通过以下两种方式完成:
示例数据准备
先构造匹配需求的示例DataFrame:
import pandas as pd df = pd.DataFrame( [['Brand', 'RIVIAN', 'LUCID Air'], ['Model', 'RIT', 'Dream Edition']], index=[3, 4], columns=['Col1', 'Col2', 'Col3'] )
方法1:列表推导式逐元素拼接
直接遍历两行的对应元素,拼接后转为Series:
row3 = df.loc[3] row4 = df.loc[4] new_row = pd.Series([f"{a} {b}" for a, b in zip(row3, row4)])
输出结果:
0 Brand Model 1 RIVIAN RIT 2 LUCID Air Dream Edition dtype: object
方法2:使用str.cat()向量化拼接
如果行内所有元素都是字符串(非字符串需先通过astype(str)转换),用pandas内置方法更高效:
# 确保元素为字符串类型 row3 = row3.astype(str) row4 = row4.astype(str) new_row = row3.str.cat(row4, sep=' ')
该方法与列表推导式结果完全一致,且更贴合pandas的向量化操作习惯。
示例示意图
内容的提问来源于stack exchange,提问作者Sherwin R
相关产品推荐
相关产品推荐

