如何将Pandas DataFrame指定列的行数据移动为前序列的新行
Pandas 行数据迁移实现方案
针对性实现(适配你当前的2行6列场景)
直接操作指定位置的单元格值即可,代码如下:
# 提取第一行后3列的目标值 target_vals = df.loc[0, [3,4,5]].tolist() # 替换第二行前3列的值 df.loc[1, ['data', 'user', 'file']] = target_vals # 将第一行后3列的值统一替换为 row df.loc[0, [3,4,5]] = ['row'] * 3
- 运行后第一行:
data/user/file列保留dataa_1/user_1/file_1,剩余列全部为row - 运行后第二行:
data/user/file列更新为dataa_2/user_2/file_2,剩余列保留原有row值
通用实现(适配任意长度的列扩展场景)
如果后续你的DataFrame列数持续增加,且第一行数据按每3列一组要拆分为多行,可以用批量处理逻辑:
group_len = 3 # 按3个为一组拆分第一行所有值 row_groups = [df.loc[0].tolist()[i:i+group_len] for i in range(0, len(df.columns), group_len)] # 用拆分后的分组生成新DataFrame new_df = pd.DataFrame(row_groups, columns=['data', 'user', 'file']) # 剩余列统一填充 row for col_idx in range(group_len, len(df.columns)): new_df[col_idx] = 'row' # 替换原有DataFrame df = new_df
该逻辑不需要手动指定列编号,会自动按每3列一组生成对应行数,适配列数动态增长的场景。
内容的提问来源于stack exchange,提问作者Archi
相关产品推荐
相关产品推荐

