Pandas DataFrame stack multiple column values into single column

borice

Assuming the following DataFrame:

  key.0 key.1 key.2  topic
1   abc   def   ghi      8
2   xab   xcd   xef      9

How can I combine the values of all the key.* columns into a single column 'key', that's associated with the topic value corresponding to the key.* columns? This is the result I want:

   topic  key
1      8  abc
2      8  def
3      8  ghi
4      9  xab
5      9  xcd
6      9  xef

Note that the number of key.N columns is variable on some external N.

Alexander

You can melt your dataframe:

>>> keys = [c for c in df if c.startswith('key.')]
>>> pd.melt(df, id_vars='topic', value_vars=keys, value_name='key')

   topic variable  key
0      8    key.0  abc
1      9    key.0  xab
2      8    key.1  def
3      9    key.1  xcd
4      8    key.2  ghi
5      9    key.2  xef

It also gives you the source of the key.


From v0.20, melt is a first class function of the pd.DataFrame class:

>>> df.melt('topic', value_name='key').drop('variable', 1)

   topic  key
0      8  abc
1      9  xab
2      8  def
3      9  xcd
4      8  ghi
5      9  xef

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Assigning multiple column values in a single row of pandas DataFrame, in one line

From Dev

Pandas - Reshape / Transform Dataframe with Multiple Columns into a Single Column of values

From Dev

Filter pandas dataframe rows by multiple column values

From Dev

Stack multiple columns into single column while maintaining other columns in Pandas?

From Dev

Pandas merge single column dataframe with another dataframe of multiple columns

From Dev

Coalesce values from 2 columns into a single column in a pandas dataframe

From Dev

Pandas logical indexing on a single column of a dataframe to assign values

From Dev

Coalesce values from 2 columns into a single column in a pandas dataframe

From Dev

Renaming certain multiple values in a column of dataframe into another single value

From Dev

Changing values in multiple columns of a pandas DataFrame using known column values

From Dev

remapping multiple column values with multiple dictionary in dataframe using python pandas

From Dev

Condensing Multiple DataFrame Columns into a Single Indicator Column in Pandas

From Dev

Condensing Multiple DataFrame Columns into a Single Indicator Column in Pandas

From Dev

Pandas Flatten a dataframe to a single column

From Dev

Pandas dataframe, how can I group by single column and apply sum to multiple column and add new sum column?

From Dev

Pandas pivot/merge multiple columns into single, using column headers as values

From Dev

Pivot table multiple column values in a single column

From Dev

selecting rows based on multiple column values in pandas dataframe

From Dev

Conditional replacement of multiple columns based on column values in pandas DataFrame

From Dev

Deleting DataFrame rows in Pandas based on column value - multiple values to remove

From Dev

Select rows from a DataFrame based on multiple values in a column in pandas

From Dev

Split a text(with names and values) column into multiple columns in Pandas DataFrame

From Dev

Pandas Set multiple column and row values to nan based on another dataframe

From Java

Replacing column values in a pandas DataFrame

From Dev

Pandas DataFrame column values in to list

From Dev

Demean column values of a pandas DataFrame

From Dev

How to concatenate multiple column values into a single column in Panda dataframe based on start and end time

From Dev

groupby and stack column into a single column

From Dev

Reversing the order of values in a single column of a Dataframe

Related Related

  1. 1

    Assigning multiple column values in a single row of pandas DataFrame, in one line

  2. 2

    Pandas - Reshape / Transform Dataframe with Multiple Columns into a Single Column of values

  3. 3

    Filter pandas dataframe rows by multiple column values

  4. 4

    Stack multiple columns into single column while maintaining other columns in Pandas?

  5. 5

    Pandas merge single column dataframe with another dataframe of multiple columns

  6. 6

    Coalesce values from 2 columns into a single column in a pandas dataframe

  7. 7

    Pandas logical indexing on a single column of a dataframe to assign values

  8. 8

    Coalesce values from 2 columns into a single column in a pandas dataframe

  9. 9

    Renaming certain multiple values in a column of dataframe into another single value

  10. 10

    Changing values in multiple columns of a pandas DataFrame using known column values

  11. 11

    remapping multiple column values with multiple dictionary in dataframe using python pandas

  12. 12

    Condensing Multiple DataFrame Columns into a Single Indicator Column in Pandas

  13. 13

    Condensing Multiple DataFrame Columns into a Single Indicator Column in Pandas

  14. 14

    Pandas Flatten a dataframe to a single column

  15. 15

    Pandas dataframe, how can I group by single column and apply sum to multiple column and add new sum column?

  16. 16

    Pandas pivot/merge multiple columns into single, using column headers as values

  17. 17

    Pivot table multiple column values in a single column

  18. 18

    selecting rows based on multiple column values in pandas dataframe

  19. 19

    Conditional replacement of multiple columns based on column values in pandas DataFrame

  20. 20

    Deleting DataFrame rows in Pandas based on column value - multiple values to remove

  21. 21

    Select rows from a DataFrame based on multiple values in a column in pandas

  22. 22

    Split a text(with names and values) column into multiple columns in Pandas DataFrame

  23. 23

    Pandas Set multiple column and row values to nan based on another dataframe

  24. 24

    Replacing column values in a pandas DataFrame

  25. 25

    Pandas DataFrame column values in to list

  26. 26

    Demean column values of a pandas DataFrame

  27. 27

    How to concatenate multiple column values into a single column in Panda dataframe based on start and end time

  28. 28

    groupby and stack column into a single column

  29. 29

    Reversing the order of values in a single column of a Dataframe

HotTag

Archive