我有一个问题,我不知道如何处理。
我有这样的CSV文件:
0.3,36.22683698,-115.0466482,1836.255238,0,0,0.2105903662,0.6848089322,41.15086807,2016/3/26,4:35:51
0.6,36.22683698,-115.0466482,1836.255238,0,0,0.2105903662,0.6848089322,41.15086807,2016/3/26,4:35:51
0.9,36.22683698,-115.0466482,1836.255238,0,0,0.2105903662,0.6848089322,41.15086807,2016/3/26,4:35:51
如您所见,首先我有9个浮点值,然后有2个我想作为字符串加载的值。分隔符=,
当我使用时:
load = np.genfromtxt(str(path), delimiter=',')
print load[0,4]
它从第0行第4列打印值,并且可以工作。数据已正确加载。但是有一个问题,因为最后两个值是nan
print load[0,10]
>>nan
当我将代码更改为此时:
load = np.genfromtxt(str(path), delimiter=',',dtype=None)
我收到错误消息:
打印负载[0,4]
IndexError:数组索引过多
所以一切正常,除非我添加 dtype=None
我做错了什么?
您不能使用几个创建numpy数组dtype
。您必须使用导入dtype=str
import numpy as np
load = np.genfromtxt(str(path), delimiter=',',dtype=str)
使用dtype=None
它创建一个带有shape的numpy数组(3,)
。所以你不能打电话load[0, 4]
。
每个条目都是包含您的数据的元组。因为元组可以包含几种类型。
也许出于您的目的,您必须使用熊猫:
import pandas as pd
load = pd.read_csv(str(path), header=None)
输出如下:
0 1 2 3 4 5 6 7 \
0 0.3 36.226837 -115.046648 1836.255238 0 0 0.21059 0.684809
1 0.6 36.226837 -115.046648 1836.255238 0 0 0.21059 0.684809
2 0.9 36.226837 -115.046648 1836.255238 0 0 0.21059 0.6848098 9 10
0 41.150868 2016/3/26 4:35:51
1 41.150868 2016/3/26 4:35:51
2 41.150868 2016/3/26 4:35:51
每列都有正确dtype
的熊猫推断
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句