0

I want to append all columns of a dataframe to a new dataframe with single column.

My Current Dataframe:

|**namelist1**| **namelist2** |  **namelist3** |and so on
|khalid       |  sabbir       | liton          |
|tamim        |  sakib        | tawhid         |
|taskin       |  santo        | naim           |

Expected Dataframe:

**namelistall**
khalid      
sabbir     
liton
tamim       
sakib      
tawhid
taskin      
santo      
naim
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252

3 Answers3

1

Use numpy.ravel with DataFrame constructor:

df = pd.DataFrame({'namelistall': np.ravel(df.to_numpy())})
print (df)
  namelistall
0      khalid
1      sabbir
2       liton
3       tamim
4       sakib
5      tawhid
6      taskin
7       santo
8        naim
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252
0

It creates a new dataframe with a single column by flattening the values of the original dataframe.

new_df = pd.DataFrame({'namelistall': current_df.values.ravel()})
Anay
  • 741
  • 1
  • 5
  • 15
0

Even the stack() from pandas.DataFrame can be used.

The code to do so is as follows:

df = pd.DataFrame({'namelistall': current_df.stack().values})
print(df)

Output:

  namelistall
0      khalid
1      sabbir
2       liton
3       tamim
4       sakib
5      tawhid
6      taskin
7       santo
8        naim
piha
  • 1
  • 2