Python应用举例:读取文本数据并转为数据框

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdkyxy2013/article/details/85119827

【需求】

很多个用户同时对n个题进行作答并得到结果,数据格式如下:

现在想通过一系列转换得到如下形式的数据框:

【Python实现】

操作之前,现将相关的包导入,如下:

import numpy as np
from pandas import DataFrame

1、首先是读取数据,方法如下:

def load_data(file_path):
    '''
    导入数据
    :param file_path: 数据存放路径
    :return: 返回数据列表
    '''
    f = open(file_path)
    data = []
    for line in f.readlines():
        row = []  # 记录每一行
        lines = line.strip().split("\t")
        for x in lines:
            row.append(x)
        data.append(row)
    f.close()
    return data

2、进行转换操作

def transform_method(data):
    '''
    转换方法
    :param data: 读进来的数据列表
    :return: 返回转换后的数据框
    '''
    a = set()
    b = set()
    for i in range(len(data)):
        a.add(data[i][0])
        b.add(data[i][1])
    a = list(a)
    b = list(b)
    res = []
    for x in range(len(a)):  # 进行对比,将对应的结果存到对应的位置
        for z in range(len(b)):
            for y in range(len(data)):
                if a[x] == data[y][0] and b[z] == data[y][1]:
                    res.append(data[y][2])
    res = b + res
    res = np.array(res).reshape(len(a) + 1, len(b))
    result = DataFrame(res)  # 转换为数据框,便于调用to_csv()方法进行存储
    result.to_csv(path + "res.csv", header=None, index=False, sep="\t")
    return result

3、查看结果

(1)数据处理之前:

(2)数据处理之后

猜你喜欢

转载自blog.csdn.net/gdkyxy2013/article/details/85119827