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

如何将分隔符数量可变的文本文件转换为dataframe并按需执行explode操作

文本转DataFrame实现方法

你提供的文本是每行列数不固定的逗号分隔数据,无法直接用pd.read_csv默认逻辑读取,可按行拆分后处理:

import pandas as pd

# 直接读取文本内容,也可以通过open()读取本地文件行
raw_text = """Attribute1,data1,data2
Attribute2,data1,data2,data3,data4
Attribute3,data1,data2,data3
Attribute4,data1,data2,data3,data4,data5,data6"""

# 按行拆分,每行再按逗号切分为列表
row_list = [line.split(',') for line in raw_text.strip().split('\n')]

# 若需要得到你示例中|分隔的输出格式,可直接拼接后生成DataFrame
df = pd.DataFrame(
    ['|'.join(row) for row in row_list],
    columns=['merged_content']
)

# 打印验证输出
print(df.to_string(index=False, header=False))

运行后即可得到你期望的第一阶段输出。


指定范围explode实现方法

explode本身支持仅对指定列操作,你只需要提前把需要展开的data3及之后的数据单独存为列表列,自动就会忽略前两个数据点:

# 构造待explode的DataFrame结构
explode_data = []
for row in row_list:
    attr_name = row[0]
    # 索引0为属性名,1为data1、2为data2,所以从索引3开始截取就是data3及之后的数据
    need_explode = row[3:]
    # 过滤掉没有data3及之后数据的行(比如Attribute1)
    if need_explode:
        explode_data.append({
            'attribute': attr_name,
            'explode_col': need_explode
        })
df_explode = pd.DataFrame(explode_data)

# 仅对explode_col列执行explode操作
result = df_explode.explode('explode_col')

# 打印你期望的|分隔格式输出
for _, line in result.iterrows():
    print(f"{line['attribute']}|{line['explode_col']}")

运行后即可得到你需要的explode结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:45:07