Pandas to Numpy:为什么CSV文件列的最后一行缺失?

nuypyhwy  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(111)

很简单的问题。我正在阅读以特定方式组织的CSV文件。没有标题,文件形状是一个矩形;不存在丢失或损坏的条目。我使用pandas读取csv文件并转换为numpy数组。
问题是,当我打印第一列时,最后一个条目丢失了。打印输出在倒数第二个值处结束。

import pandas as pd
import numpy as np

filenames=glob.glob(r'\my\filepath\*csv')
def data(filename):
    out = pd.read_csv(r'{}'.format(filenames[0]),sep=',',header=None).to_numpy()
    return out

alldata = data(filenames[0])
column1 = alldata[0:-1,0]
print(column1)

我期望print命令打印整个列,但打印在倒数第二个值处结束。我在excel中打开了csv文件,打印命令显然缺少了最后一个值。但是如果我这么做了

print(alldata)

我可以在打印的表中看到column 1的预期最后一个值。发生什么事了?0:-1应该跨越整个列,对吗?

jchrr9hc

jchrr9hc1#

Mate,问题是由切片引起的,alldata[0:-1,0]从包含的第一行选择,直到最后一行(不包含)。试试这个:

filenames = glob.glob(r'\my\filepath\*csv')

def data(filename):
    out = pd.read_csv(r'{}'.format(filenames[0]), sep=',', header=None).to_numpy()
    return out

alldata = data(filenames[0])
column1 = alldata[:, 0]  # Select all rows in the first column
print(column1)

相关问题