Python應用舉例:讀取文字資料並轉為資料框
阿新 • • 發佈:2018-12-20
【需求】
很多個使用者同時對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)資料處理之後