Python Forum
Reshaping a single column in to multiple column using Python
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Reshaping a single column in to multiple column using Python
#1
I have an excel file containing a single column (Row's number is not fixed). Using Python 3, I want to,
  1. Import my excel file/data in python,
  2. Read/select the data column (first column), and
  3. Reshape this column into multiple columns having 10 rows in each column and finally
  4. Writing output to a new excel file.
I am a Matlab user and know how to do this in Matlab using Matlab’s reshape command
Quote:newVar = reshape(myColumn, 10, [])
.

Looking for someone to help me out achieving this in Python 3.
Reply
#2
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
Reply
#3
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
Reply
#4
reshape is a function, not a method of nparray. The call is "new_array = numpy.reshape(arr, (10, -1))".
Reply
#5
(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=",")
Reply
#6
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.
Reply
#7
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
Reply
#8
Always helps to read the documentation, especially when trying something new.

https://pandas.pydata.org/pandas-docs/st...excel.html

Quote:headerint, list of int, default 0
Row (0-indexed) to use for the column labels of the parsed DataFrame. If a list of integers is passed those row positions will be combined into a MultiIndex. Use None if there is no header.

https://numpy.org/doc/stable/reference/g...shape.html

Quote:numpy.reshape(a, newshape, order='C')[source]
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Adding PD DataFrame column bsben 2 246 Mar-08-2024, 10:46 PM
Last Post: deanhystad
  Get an average of the unique values of a column with group by condition and assign it klllmmm 0 223 Feb-17-2024, 05:53 PM
Last Post: klllmmm
  Help copying a column from a csv to another file with some extras g0nz0uk 3 406 Feb-01-2024, 03:12 PM
Last Post: DeaD_EyE
  Converting column of values into muliple columns of counts highland44 0 205 Feb-01-2024, 12:48 AM
Last Post: highland44
  Python code to set column width 1418 11 947 Jan-20-2024, 07:20 AM
Last Post: Pedroski55
  Python Alteryx QS-Passing pandas dataframe column inside SQL query where condition sanky1990 0 690 Dec-04-2023, 09:48 PM
Last Post: sanky1990
  python convert multiple files to multiple lists MCL169 6 1,436 Nov-25-2023, 05:31 AM
Last Post: Iqratech
  Returning Column and Row Data From Spreadsheet knight2000 0 413 Oct-22-2023, 07:07 AM
Last Post: knight2000
  Find a string from a column of one table in another table visedwings049 8 1,086 Sep-07-2023, 03:22 PM
Last Post: deanhystad
  DF value by Column... not sure what to call it tester_V 2 533 Aug-26-2023, 06:56 PM
Last Post: tester_V

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020