python arff稀疏格式文件传pandas DataFrame

本文介绍如何使用Python将存储在ARFF稀疏格式的文件转换为Pandas DataFrame,以便进行数据分析和处理。内容包括解析ARFF文件结构、读取数据并将其有效地映射到DataFrame中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#ecoding=utf-8
import numpy as np
from scipy.sparse import csr_matrix
import pandas as pd
from xml.dom.minidom import parse

def read_sparse_arff(f_path , xml_path):
    #读文件
    f = open(f_path)
    f_data = f.read().split('@data')
    f.close()
    #解析数据列名
    column = [i.split(' ')[1] for i in  f_data[0].split('@attribute')[1:]]
    #解析数据
    row , col , data = [] , [] , []
    for l in enumerate(f_data[1].replace(' ' , ':').split('\n')[1:-1]):
        print(l)
        l_v_dict = eval(l[1])
        col.extend(l_v_dict.keys())
        data.extend(l_v_dict.values())
        row.extend([l[0] for i in range(len(l_v_dict))])
    arff_data = csr_matrix((data , (row , col)) , shape=(row[-1] + 1 , len(column)))
    arff_data = pd.DataFrame(arff_data.toarray() , columns=column)
    #解析label列名
    DOMTree = parse(xml_path)
    collection = DOMTree._get_documentElement()
    labels = collection.getElementsByTagName('label')
    labels = [l.getAttr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值