[Numpy-discussion] [SciPy-User] Why slicing Pandas column and then subtract gives NaN?
tmrsg11 at gmail.com
Fri Feb 15 16:48:25 EST 2019
Fair enough. Python has been called the #1 language for data science. If
I'm slicing a[2:5] out of range, why not throw an error. This is
I mean, why would you design a language to slice outside of range? Also, no
other language I know have this strange behavior.
On Fri, Feb 15, 2019 at 12:51 PM Paul Hobson <pmhobson at gmail.com> wrote:
> On Fri, Feb 15, 2019 at 5:12 AM Mike C <tmrsg11 at gmail.com> wrote:
>> 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
> If you read a file into a pandas structure, it will have row labels. The
> default labels are integers that correspond to the ordinal positions of the
> Numpy reads files.
> I prefer file IO in pandas, so I don't know which function will better
> suite your needs.
> 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 a feature of python in general, not numpy in particular. Every
> language has its own quirks. The more you immerse yourself in them, the
> quick you'll learn to adapt to them.
>> *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
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion