Reshaping a single column in to multiple column using Python - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Reshaping a single column in to multiple column using Python (/thread-37495.html) |
Reshaping a single column in to multiple column using Python - sahar - Jun-19-2022 I have an excel file containing a single column (Row's number is not fixed). Using Python 3, I want to,
Quote:newVar = reshape(myColumn, 10, []). Looking for someone to help me out achieving this in Python 3. RE: Reshaping a single column in to multiple column using Python - jefsummers - Jun-19-2022 We will help you, but you need to show effort and let us know where you get stuck. Of course, there is not just one way, so my suggestions are how I would approach the problem. As a start, use Pandas to import into a dataframe. Use the iloc function to select your range in the desired column, and copy that data to the new column. See Pandas documentation RE: Reshaping a single column in to multiple column using Python - sahar - Jun-19-2022 Ok, I have tried but could not get the desired result. import pandas as pd import numpy as np df = pd.read_excel('sample.xlsx') first_column = pd.DataFrame(df.iloc[:,0]) arr = np.array(first_column) newArr = arr.reshape(arr, (10, -1))Code shows the error: Quote:newArr = arr.reshape(10, -1) Quote:TypeError: only integer scalar arrays can be converted to a scalar index RE: Reshaping a single column in to multiple column using Python - deanhystad - Jun-19-2022 reshape is a function, not a method of nparray. The call is "new_array = numpy.reshape(arr, (10, -1))". RE: Reshaping a single column in to multiple column using Python - sahar - Jun-20-2022 (Jun-19-2022, 07:20 PM)deanhystad Wrote: reshape is a function, not a method of nparray. The call is "new_array = numpy.reshape(arr, (10, -1))". Hi, thanks for your explanation. I have tried this but no results. import pandas as pd import numpy as np df = pd.read_excel('sample.xlsx') myCol = pd.DataFrame(df.iloc[:,0]) arr = np.array (myCol) newArr = np.reshape(arr, (10, -1), order='F') np.savetxt("newMatrix.csv", newArr, delimiter=",") RE: Reshaping a single column in to multiple column using Python - sahar - Jun-20-2022 I have found a strange thing. If i add one more row in my column, the same code performs as intended. Image Please note now I have 31 rows. To me it seems that something has to do with indexing. RE: Reshaping a single column in to multiple column using Python - jefsummers - Jun-20-2022 The default in pandas read_excel() function is that the first row is used as a header. If you start with data then add the parameter header=None RE: Reshaping a single column in to multiple column using Python - deanhystad - Jun-20-2022 Always helps to read the documentation, especially when trying something new. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html Quote:headerint, list of int, default 0 https://numpy.org/doc/stable/reference/generated/numpy.reshape.html Quote:numpy.reshape(a, newshape, order='C')[source] |