[Numpy-discussion] [SciPy-User] Why slicing Pandas column and then subtract gives NaN?
deak.andris at gmail.com
Fri Feb 15 12:49:07 EST 2019
> The original data was in CSV format. I read it in using pd.read_csv(). It does have column names, but no row names. I don’t think numpy reads csv files
I routinely read csv files using numpy.loadtxt
> And also, when I do a[2:5]-b[:3], it does not throw any “index out of range” error. I was able to catch that, but in both Matlab and R. You get an error. This is frustrating!!
That's basic slicing behaviour of python. You might like it or not,
but it's baked into the language:
>>> [1,2][:10], [1,2][5:7]
([1, 2], )
One would need very good reasons to break this in case of a third-party library.
> From: NumPy-Discussion <numpy-discussion-bounces+tmrsg11=gmail.com at python.org> on behalf of Juan Nunez-Iglesias <jni.soma at gmail.com>
> Sent: Friday, February 15, 2019 4:15 AM
> To: Discussion of Numerical Python
> Subject: Re: [Numpy-discussion] [SciPy-User] Why slicing Pandas column and then subtract gives NaN?
> I don’t have index when I read in the data. I just want to slice two series to the same length, and subtract. That’s it!
> I also don’t what numpy methods wrapped within methods. They work, but hard do understand.
> How would you do it? In Matlab or R, it’s very simple, one line.
> Why are you using pandas at all? If you want the Matlab equivalent, use NumPy from the beginning (or as soon as possible). I personally agree with you that pandas is too verbose, which is why I mostly use NumPy for this kind of arithmetic, and reserve pandas for advanced data table type functionality (like groupbys and joining on indices).
> As you saw yourself, a.values[1:4] - b.values[0:3] works great. If you read in your data into NumPy from the beginning, it’ll be a[1:4] - b[0:3] just like in Matlab. (Or even better: a[1:] - b[:-1]).
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
More information about the NumPy-Discussion