导入csv文件时出现问题:mathematica 8中的ABC.csv文件

时间:2011-08-27 14:59:17

标签: wolfram-mathematica

我有一个csv文件Nifty_PE:

01-Dec-2008,       11.76,
02-Dec-2008,       11.65,
03-Dec-2008,       11.64,
04-Dec-2008,       12.22,
05-Dec-2008,       11.90,
08-Dec-2008,       12.20,
10-Dec-2008,       12.84,
11-Dec-2008,       12.80,
12-Dec-2008,       12.81,
15-Dec-2008,       13.07,
16-Dec-2008,       13.33,

当我在mathematica中给出以下cmd:

Take[Import["C:\\Users\\ROHAN\Desktop\\NIFTY_PE.csv", "CSV"], 5]

我得到的输出为:

{{"01-Dec-2008", 11.76, ""}, {"02-Dec-2008", 11.65, 
  ""}, {"03-Dec-2008", 11.64, ""}, {"04-Dec-2008", 12.22, 
  ""}, {"05-Dec-2008", 11.9, ""}}

我想要的是:

{{"01-Dec-2008", 11.76}, {"02-Dec-2008",...........

请帮助我如何获得所需的输出..

3 个答案:

答案 0 :(得分:3)

请改为尝试:

Import["C:\\Users\\ROHAN\Desktop\\NIFTY_PE.csv", "CSV"][[1;;5, 1;;2]]

[[1;;5, 1;;2]]仅索引返回数组的一部分。 1;;5表示第1行到第5行。1;;2表示第1列和第2列 - 忽略空的第三列。如果您想保留所有行而不是前五行,请使用[[All, 1;;2]]

所有这些都记录在函数Part下。

答案 1 :(得分:3)

或者,您可以执行类似

的操作
Take[Import["C:\\Users\\ROHAN\Desktop\\NIFTY_PE.csv", "CSV"], 5, 2]

将占用导入表的前5行的前2列。

答案 2 :(得分:0)

或者* 2,如果您不知道(或者不希望提前检查)矩阵的所需尺寸,您可以使用替换规则。

Import["C:\\Users\\ROHAN\Desktop\\NIFTY_PE.csv", "CSV"] /. "" -> Sequence[]

或者如果您担心除了行尾之外的其他地方可能还有空白,而您只想消除行尾的那些空白:

Import["C:\\Users\\ROHAN\Desktop\\NIFTY_PE.csv", "CSV"] /. {a__,""} -> {a}