在pandas中删除原始列并将首行设为新列的方法
实现方案
针对拆分后的三个DataFrame,要替换原始自动列标签为第一行数据,可按以下步骤操作:
1. 封装通用处理函数
把重复逻辑写成函数,方便批量处理三个DataFrame:
def reset_df_columns(df): # 将第一行数据设为新列名 df.columns = df.iloc[0].tolist() # 删除已作为列名的原第一行 df = df.drop(df.index[0]) # 重置行索引(可选,按需保留) df = df.reset_index(drop=True) return df
2. 拆分并处理数据
先完成原始数据拆分,再用函数处理每个子DataFrame:
# 拆分原始数据 yr_20 = watch_nums.iloc[:, :8] yr_21 = watch_nums.iloc[:, 8:16] yr_22 = watch_nums.iloc[:, 17:25] # 应用列名重置逻辑 yr_20 = reset_df_columns(yr_20) yr_21 = reset_df_columns(yr_21) yr_22 = reset_df_columns(yr_22)
关键步骤说明
- 用
df.iloc[0].tolist()提取第一行数据,直接赋值给df.columns完成列名替换,替代原自动生成的列标签 drop(df.index[0])删除已转为列名的第一行数据,避免数据冗余reset_index(drop=True)用于清除原始行索引,让新DataFrame的索引从0开始连续编号,不需要的话可以删除该行
内容的提问来源于stack exchange,提问作者cspeciosa
相关产品推荐
相关产品推荐

