我正试图将CSV文件中的一列读取到数组中。
到目前为止,我已经成功地阅读了以下代码的文件。
load 'csv'
data =: readcsv '/Users/max/Desktop/prices.csv'
在解释器中键入data
会产生下表(我所期望的(
┌────────────┬────────┬────────┐
│Date │Price │Open │
├────────────┼────────┼────────┤
│Jun 01, 2022│29,798.5│31,793.1│
├────────────┼────────┼────────┤
│Jun 02, 2022│30,455.5│29,798.6│
├────────────┼────────┼────────┤
│Jun 03, 2022│29,700.9│30,455.7│
├────────────┼────────┼────────┤
│Jun 04, 2022│29,864.3│29,700.9│
├────────────┼────────┼────────┤
│Jun 05, 2022│29,913.0│29,865.1│
├────────────┼────────┼────────┤
│Jun 06, 2022│31,367.6│29,911.2│
├────────────┼────────┼────────┤
│Jun 07, 2022│31,128.8│31,370.3│
├────────────┼────────┼────────┤
│Jun 08, 2022│30,201.6│31,127.2│
├────────────┼────────┼────────┤
现在我的问题是,如何提取"打开"这样的列,然后对其进行转换转换为类似"31,793.1" "29,798.6" "30,455.7" "29,700.9"
的变量
您可以像使用任何其他盒装数组一样使用数据。
data
┌────┬────┬────┐
│col1│col2│col3│
├────┼────┼────┤
│a │b │c │
├────┼────┼────┤
│d │e │f │
├────┼────┼────┤
│g │h │i │
└────┴────┴────┘
NB. Column 3
2{"1 data
┌────┬─┬─┬─┐
│col3│c│f│i│
└────┴─┴─┴─┘
NB. Column 3 without the header
}. 2{"1 data
┌─┬─┬─┐
│c│f│i│
└─┴─┴─┘
NB. Col3 data unboxed and joined
,> }. 2{"1 data
cfi
在Dyalog APL:中
data ← ⎕CSV '/Users/max/Desktop/prices.csv'
右键缩小得到最右边的列,然后放下标题:
1 ↓ ⊢/data
┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
│31,793.1│29,798.6│30,455.7│29,700.9│29,865.1│29,911.2│31,370.3│31,127.2│
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
OR,指示单个标题行,然后用⊃
等获取主数据:
⊢/⊃⎕CSV '/Users/max/Desktop/prices.csv' ⍬ ⍬ 1
┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
│31,793.1│29,798.6│30,455.7│29,700.9│29,865.1│29,911.2│31,370.3│31,127.2│
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
顺便说一句,⎕CSV
甚至可以为您解析数字,这样您就可以得到一个数字列表,而不是字符串列表。CCD_ 5在这里的意思是";尝试将单元格解析为数字":
⊢/⊃⎕CSV⍠'Thousands' ','⊢'/Users/max/Desktop/prices.csv' ⍬ 4 1
31793.1 29798.6 30455.7 29700.9 29865.1 29911.2 31370.3 31127.2