Pandas中如何将DataFrame指定列后续元素拼接复制到首行位置
需求可行性
该需求完全可以实现,仅需通过pandas基础的索引定位、字符串拼接操作即可完成,不会改动除mut列首行外的其他数据。
具体操作步骤
核心逻辑:提取mut列从第二行开始的所有元素,拼接为完整字符串后,赋值给mut列第一行即可。
- 如果你使用的是默认从0开始的连续整数索引,直接用
loc按索引标签取值即可,代码如下:
import pandas as pd # 以下为测试样例构造,你自己的现有df可以跳过这步 df = pd.DataFrame({ 'num': [67, 68, 69], 'mut': ['O', 'T', 'D'] }) # 核心处理代码 df.loc[0, 'mut'] = ''.join(df.loc[1:, 'mut'])
处理后输出结果和预期完全一致:
num mut 0 67 OTD 1 68 T 2 69 D
- 如果你的DataFrame索引不是默认连续整数(比如做过筛选、分组操作未重置索引),推荐用
iloc按行位置取值,兼容性更强,不会因为索引值不连续报错:
# 先获取mut列的列位置,避免硬编码列序号 mut_col_pos = df.columns.get_loc('mut') # 按位置取第二行及之后的mut值拼接,赋值给第一行位置 df.iloc[0, mut_col_pos] = ''.join(df.iloc[1:, mut_col_pos])
注意:如果mut列存在非字符串类型的值,拼接前可以先统一转成字符串,把拼接部分改成
''.join(df.iloc[1:, mut_col_pos].astype(str))即可避免类型报错。
内容的提问来源于stack exchange,提问作者Tia Cava
相关产品推荐
相关产品推荐

