1. 程式人生 > >Python應用舉例:讀取文字資料並轉為資料框

Python應用舉例:讀取文字資料並轉為資料框

【需求】

很多個使用者同時對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)資料處理之後