首页 > 解决方案 > 如何使用 python 数据表库从值矩阵(列表列表)和特征列表创建数据表数据框

问题描述

给定n 个特征的列表:

lf = ['f1','f2',...,'fn']

给定一个包含m个列表的列表,每个嵌套列表包含n 个值(m行和n列的矩阵):

matrix =  
[
[r0_v1, r0_v2, ..., r0_vn]  
[r1_v1, r1_v2, ..., r1_vn]  
.
.
.
[rm_v1, rm_v2, ..., rm_vn]  
]

使用python 数据表库创建数据表数据农场的正确方法是什么?

我在以下源代码中尝试了类似于 pandas 数据框的内容:

import pandas as pd
import datatable as dt

# pandas create dataframe
pd_df = pd.DataFrame(matrix,columns=lf) # work fine

# datatable create dataframe
dt_df = dt.Frame(matrix,names=lf) # get error, the rows are considered as columns

但我得到一个错误 ValueError: The names 参数包含 n 个元素,这超过了正在创建的列数 (m)
这意味着行被视为列。

谢谢你的帮助。

标签: pythonpandasdataframe

解决方案


要从矩阵和特征列表创建数据表数据农场,请使用dt.Frame(matrix_values, names=list_features)
Usenp.array从列表列表转换为二维数组:matrix = np.array(matrix)

import datatable as dt
import numpy as np

lf = ['f1','f2','f3','f4','f5']

matrix = [
    [0,0,0,0,0],
    [1,1,1,1,1],
    [2,2,2,2,2],
]

matrix = np.array(matrix)

dt_df = dt.Frame(matrix,names=lf)

print(dt_df)

推荐阅读