【问题标题】:How to import CSV file into Octave and keep the column headers如何将 CSV 文件导入 Octave 并保留列标题
【发布时间】:2021-04-22 19:14:28
【问题描述】:

我正在尝试导入 CSV 文件,以便可以将其与 k-means 聚类算法一起使用。该文件包含 6 列和 400 多行。我使用的 excel 文档的Here is a picture(在将其导出为 CSV 文件之前)。本质上,我希望能够在我的代码中使用列标题名称,以便在绘制数据时使用列名称,以及对其进行聚类。

我查看了其他一些 documentation 并想出了这段代码,但是当我将它放入命令窗口时没有任何输出:

[Player BA OPS RBI OBP] = CSVIMPORT( 'MLBdata.csv', 'columns', {'Player', 'BA', 'OPS', 'RBI', 'OBP'}

到目前为止,唯一对我有用的是 dlm read 函数,但是当有一个字符串时它返回 0 N = dlmread('MLBdata.csv')

【问题讨论】:

标签: csv octave


【解决方案1】:

八度

给定文件data.csv,内容如下:

Player,Year,BA,OPS,RBI,OBP
SandyAlcantara,2019,0.086,0.22,4,0.117
PeteAlonso,2019,0.26,0.941,120,0.358
BrandonLowe,2019,0.27,0.85,51,0.336
MikeSoroka,2019,0.077,0.22,3,0.143

打开一个 octave 终端并输入:

pkg load io
C = csv2cell( 'data.csv' )

产生以下元胞数组:

C =
{
  [1,1] = Player
  [2,1] = SandyAlcantara
  [3,1] = PeteAlonso
  [4,1] = BrandonLowe
  [5,1] = MikeSoroka

  [1,2] = Year
  [2,2] = 2019
  [3,2] = 2019
  [4,2] = 2019
  [5,2] = 2019

  [1,3] = BA
  [2,3] = 0.086000
  [3,3] = 0.2600
  [4,3] = 0.2700
  [5,3] = 0.077000

  [1,4] = OPS
  [2,4] = 0.2200
  [3,4] = 0.9410
  [4,4] = 0.8500
  [5,4] = 0.2200

  [1,5] = RBI
  [2,5] = 4
  [3,5] = 120
  [4,5] = 51
  [5,5] = 3

  [1,6] = OBP
  [2,6] = 0.1170
  [3,6] = 0.3580
  [4,6] = 0.3360
  [5,6] = 0.1430
}

从那里开始,您可以根据需要将这些数据收集到数组或结构中并继续工作。一个不错的选择是 Andrew Janke 的漂亮 'tablicious' 包:

octave:13> pkg load tablicious                                                                                                                                                                                                                                                                                            
octave:14> T = cell2table( C(2:end,:), 'VariableNames', C(1,:) );                                                                                                                                                                                                                                                         
octave:15> prettyprint(T)                                                                                                                                                                                                                                                                                                 
-------------------------------------------------------                                                                                                                                                                                                                                                                   
| Player         | Year | BA    | OPS   | RBI | OBP   |                                                                                                                                                                                                                                                                   
-------------------------------------------------------                                                                                                                                                                                                                                                                   
| SandyAlcantara | 2019 | 0.086 | 0.22  | 4   | 0.117 |                                                                                                                                                                                                                                                                   
| PeteAlonso     | 2019 | 0.26  | 0.941 | 120 | 0.358 |                                                                                                                                                                                                                                                                   
| BrandonLowe    | 2019 | 0.27  | 0.85  | 51  | 0.336 |                                                                                                                                                                                                                                                                   
| MikeSoroka     | 2019 | 0.077 | 0.22  | 3   | 0.143 |                                                                                                                                                                                                                                                                   
-------------------------------------------------------   

【讨论】:

    猜你喜欢
    • 2018-01-31
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多