Pandas转Numpy时CSV文件首列最后一条数据缺失问题排查
Numpy切片导致首列最后一条数据缺失的解决办法
你的问题核心出在Numpy的切片规则上:切片遵循左闭右开区间。alldata[0:-1,0]里的0:-1表示从第0行开始,到倒数第二行结束(不包含最后一行对应的索引),所以最后一条数据自然不会出现在结果里。
要获取首列的全部数据,有两种实用写法:
- 最简洁的方式:用冒号直接指代所有行,代码写成
column1 = alldata[:, 0] - 如果习惯写索引范围,可以写成
alldata[0:, 0],这里的0:表示从第0行一直取到最后一行(包含最后一行)
另外提个小细节:你定义的data函数里,参数filename并没有被实际使用,一直固定读取filenames[0],如果之后要批量处理多个CSV文件,记得改成用传入的参数,比如:
def data(filename): out = pd.read_csv(filename, sep=',', header=None).to_numpy() return out
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

