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

如何基于行模式拆分以NA为分隔符的凌乱数据为DataFrame列表

拆分以NA分隔的表格数据为多个DataFrame列表

实现步骤

  • 清理原始数据:按行拆分、过滤空行、去除每行首尾空格
  • 以NA为分隔标识,将数据分割成多个独立表格块
  • 将每个表格块转换为Pandas DataFrame,并自动转换数值列类型

完整代码

import pandas as pd

# 原始输入数据
raw_data = """id          V1    
Player   Score
Kevin        8
Michael      7
Ralf         2
NA
Player   Value
Kevin        6
Michael      1
Ralf         2
NA"""

# 1. 预处理数据行
lines = [line.strip() for line in raw_data.split('\n') if line.strip()]

# 2. 按NA分割表格块
data_blocks = []
current_block = []
for line in lines:
    if line == 'NA':
        if current_block:
            data_blocks.append(current_block)
            current_block = []
    else:
        current_block.append(line)
# 处理最后一个未被NA收尾的块
if current_block:
    data_blocks.append(current_block)

# 3. 转换为DataFrame列表
df_list = []
for block in data_blocks:
    header = block[0].split()
    data_rows = [row.split() for row in block[1:]]
    df = pd.DataFrame(data_rows, columns=header)
    # 转换数值列类型
    for col in df.columns[1:]:
        df[col] = pd.to_numeric(df[col])
    df_list.append(df)

# 查看结果
for idx, df in enumerate(df_list, 1):
    print(f"=== 第{idx}个DataFrame ===")
    print(df)

输出结果

df_list即为包含两个独立DataFrame的列表,输出如下:

第一个DataFrame:

Player  Score
0    Kevin      8
1  Michael      7
2     Ralf      2

第二个DataFrame:

Player  Value
0    Kevin      6
1  Michael      1
2     Ralf      2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:40:44