如何在DataFrame的name列添加后缀以区分不同来源数据?
给DataFrame指定列批量添加后缀的实现方法
完全可以实现给DataFrame的指定列(比如name列)所有值添加后缀并保留原内容,以下是具体操作方案:
单个DataFrame处理
假设你有一个名为df的DataFrame,想要给name列添加_sample1后缀,直接对列执行字符串拼接即可:
import pandas as pd # 示例原始DataFrame df = pd.DataFrame({ 'name': ['ENSG00000135821', 'ENSG00000182667', 'ENSG00000155495', 'ENSG00000198959'], 'id': [2752, 50863, 9947, 7052], 'sym': ['GLUL', 'NTM', 'MAGEC1', 'TGM2'] }) # 添加后缀 df['name'] = df['name'] + '_sample1'
处理后的DataFrame效果如下:
name id sym 0 ENSG00000135821_sample1 2752 GLUL 1 ENSG00000182667_sample1 50863 NTM 2 ENSG00000155495_sample1 9947 MAGEC1 3 ENSG00000198959_sample1 7052 TGM2
多数据源合并场景
如果有多个来自不同数据源的DataFrame,需要分别添加不同后缀后合并,可按以下方式操作:
# 假设已有df1、df2、df3、df4四个数据源DataFrame dfs = [df1, df2, df3, df4] # 遍历添加对应后缀 for idx, single_df in enumerate(dfs, start=1): single_df['name'] = single_df['name'] + f'_sample{idx}' # 合并所有处理后的DataFrame merged_df = pd.concat(dfs, ignore_index=True)
合并后的DataFrame示例:
name id sym 0 ENSG00000135821_sample1 2752 GLUL 1 ENSG00000135821_sample2 2752 GLUL 2 ENSG00000135821_sample3 2752 GLUL 3 ENSG00000135821_sample4 2752 GLUL
内容的提问来源于stack exchange,提问作者pahi
相关产品推荐
相关产品推荐

