使用numpy.genfromtxt()从CSV文件保存标头

时间:2019-06-09 17:39:09

标签: python-3.x numpy genfromtxt

我正在使用numpy.genfromtxt()来读取CSV文件,并且我希望将标头与标头下方的数据分开保存。

我知道skip_header=1参数允许我跳过标题,但是在那种情况下,标题丢失了,但是我想保存它。我尝试使用skip_footer参数,以便通过将skip_footer设置为比CSV文件的长度小1来跳过标题下的所有内容,并仅保留标题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]]

我只想保留nan顶行中的内容。

1 个答案:

答案 0 :(得分:0)

解决方案:

header = np.genfromtxt('filename.csv', delimiter=',', dtype=str, max_rows=1)
print(header)

输出:

['pickup_year' 'pickup_month' 'pickup_day' 'pickup_dayofweek'
 'pickup_time' 'pickup_location_code' 'dropoff_location_code'
 'trip_distance' 'trip_length' 'fare_amount' 'fees_amount' 'tolls_amount'
 'tip_amount' 'total_amount' 'payment_type']