You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中转置DataFrame后添加换行调整CSV输出格式

解决方案

一、遇到“current gimmik”时换行

转置后的DataFrame会把原表的行转为列,我们先将转置后的数据拉成一维序列,再以“current gimmik”为分割点拆分数据块,最后重新组合成规整的结构保存:

import pandas as pd

# 读取数据并完成转置
data = pd.read_csv("wwe/maw.csv")
df_transposed = data.transpose()

# 将转置后的数据转为一维数组,保留原始顺序
flat_data = df_transposed.stack().values.flatten()

# 定位所有"current gimmik"的出现位置
split_indices = [i for i, val in enumerate(flat_data) if val == "current gimmik"]
# 补充首尾索引,确保分割覆盖全部数据
split_indices = [0] + split_indices[1:] + [len(flat_data)]

# 按分割点拆分数据块
data_blocks = [flat_data[split_indices[i]:split_indices[i+1]] for i in range(len(split_indices)-1)]

# 统一所有数据块的长度(填充NaN适配CSV格式要求)
max_len = max(len(block) for block in data_blocks)
new_df = pd.DataFrame([block.tolist() + [None]*(max_len - len(block)) for block in data_blocks])

# 保存结果,不生成额外索引和表头
new_df.to_csv("wwe/mawmaw_rule1.csv", index=False, header=False)

二、按每11列换行

把转置后的所有数据拉平,再按每11个元素为一组重新组织成新的行结构:

import pandas as pd

# 读取数据并完成转置
data = pd.read_csv("wwe/maw.csv")
df_transposed = data.transpose()

# 将转置后的数据转为一维数组
flat_data = df_transposed.stack().values.flatten()

# 按每11个元素分割成新行
chunk_size = 11
new_data = [flat_data[i:i+chunk_size] for i in range(0, len(flat_data), chunk_size)]

# 转为DataFrame并保存
new_df = pd.DataFrame(new_data)
new_df.to_csv("wwe/mawmaw_rule2.csv", index=False, header=False)

补充说明

如果需要同时生效两种规则,可以先按“current gimmik”分割出数据块,再对每个块内部执行每11个元素拆分的逻辑,最后合并所有拆分结果即可。

内容的提问来源于stack exchange,提问作者user19353374

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 06:48:19