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

如何用Python读取数据集整数值,跳过前5列并导入numpy/pandas数组?

解决方法:提取文本文件中的数值并存入NumPy/Pandas

我来帮你搞定这个需求!根据你给出的行格式,我们需要跳过前5列(其中第5列是包含空格的"Nrn de"),然后提取后面的数值并存储到NumPy数组或Pandas DataFrame里。下面分两种方式实现:

方法一:使用Pandas(推荐,处理结构化数据更灵活)

Pandas能轻松处理这种带不规则列的文本,我们可以逐行解析后构建DataFrame:

import pandas as pd

def parse_line(line):
    # 按空白拆分每行内容,过滤掉空行
    tokens = line.strip().split()
    # 前5列对应前6个token(因为第5列是"Nrn de"两个单词),所以从第7个token开始取数值
    numeric_values = [float(token) for token in tokens[6:]]
    return numeric_values

# 读取文件并处理每一行
processed_data = []
with open("your_dataset.txt", "r") as file:
    for line in file:
        if line.strip():  # 跳过空行
            processed_data.append(parse_line(line))

# 转为Pandas DataFrame
df = pd.DataFrame(processed_data)
# 如果需要转为NumPy数组
numpy_array = df.to_numpy()

# 可选:如果确实只需要整数,可以转换类型
# df = df.astype(int)
# numpy_array = numpy_array.astype(int)

方法二:直接使用NumPy

如果你更倾向于用NumPy处理,也可以直接解析后生成数组:

import numpy as np

# 读取所有非空行
with open("your_dataset.txt", "r") as file:
    lines = [line.strip() for line in file if line.strip()]

# 解析每行的数值部分
data_list = []
for line in lines:
    tokens = line.split()
    # 同样跳过前6个token,提取后续数值并转成float
    nums = [float(t) for t in tokens[6:]]
    data_list.append(nums)

# 转为NumPy数组
numeric_array = np.array(data_list)

# 可选:转成整数类型
# numeric_array = numeric_array.astype(int)

关键说明

  • 为什么取tokens[6:]?因为你的示例行中,前5列对应前6个单词(前4列各1个单词,第5列是"Nrn de"两个单词),所以从索引6开始的部分就是我们需要的数值列。
  • 示例中有.1这样的小数,所以先用float转换,如果你确实只需要整数,最后加上.astype(int)即可。
  • 代码里跳过了空行,避免处理无效内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:01:02