【发布时间】:2019-06-09 17:39:09
【问题描述】:
我正在使用numpy.genfromtxt() 读取 CSV 文件,并且我想将标题与标题下方的数据分开保存。
我知道skip_header=1 参数允许我跳过标题,但在这种情况下,标题丢失了,但我想保存它。我尝试使用skip_footer 参数,这样它会跳过标题下面 的所有内容,并通过将skip_footer 设置为小于CSV 文件的长度或skip_footer=(len('filename.csv')-1) 来仅保留标题。代码运行,但没有给出正确的输出。不知何故,numpy.genfromtxt() 并没有按照我想象的方式计算 CSV 文件的行数。
header = numpy.genfromtxt('filename.csv', delimiter=',', skip_footer=(len('filename.csv')-1))
我希望只将标题作为一维 NumPy 数组,而不是得到类似于整个数组的东西:
[[ nan nan nan ... nan nan nan]
[2.016e+03 1.000e+00 1.000e+00 ... 1.165e+01 6.999e+01 1.000e+00]
[2.016e+03 1.000e+00 1.000e+00 ... 8.000e+00 5.430e+01 1.000e+00]
...
[2.016e+03 6.000e+00 3.000e+01 ... 0.000e+00 4.630e+01 2.000e+00]
[2.016e+03 6.000e+00 3.000e+01 ... 8.750e+00 5.255e+01 1.000e+00]
[2.016e+03 6.000e+00 3.000e+01 ... 8.880e+00 5.822e+01 1.000e+00]]
我只想保留nans 第一行的内容。
【问题讨论】:
-
len('filename.csv')-1是 11。默认dtype是float。 -
使用
maxrows更有意义skip_footer(需要读取整个文件)。 -
谢谢,@hpaulj,这行得通。在这种情况下,您只需要小心将
dtype参数指定为dtype=str。请参阅下面的答案。
标签: python-3.x numpy genfromtxt