How to convert Dataframe into Series?



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








4















I want to convert N columns into one series. How to do it effectively?



Input:



 0 1 2 3
0 64 98 47 58
1 80 94 81 46
2 18 43 79 84
3 57 35 81 31


Expected Output:



0 64
1 80
2 18
3 57
4 98
5 94
6 43
7 35
8 47
9 81
10 79
11 81
12 58
13 46
14 84
15 31
dtype: int64


So Far I tried:



print df[0].append(df[1]).append(df[2]).append(df[3]).reset_index(drop=True)


I'm not satisfied with my solution, moreover it won't work for dynamic columns. Please help me to find a better approach.










share|improve this question






























    4















    I want to convert N columns into one series. How to do it effectively?



    Input:



     0 1 2 3
    0 64 98 47 58
    1 80 94 81 46
    2 18 43 79 84
    3 57 35 81 31


    Expected Output:



    0 64
    1 80
    2 18
    3 57
    4 98
    5 94
    6 43
    7 35
    8 47
    9 81
    10 79
    11 81
    12 58
    13 46
    14 84
    15 31
    dtype: int64


    So Far I tried:



    print df[0].append(df[1]).append(df[2]).append(df[3]).reset_index(drop=True)


    I'm not satisfied with my solution, moreover it won't work for dynamic columns. Please help me to find a better approach.










    share|improve this question


























      4












      4








      4


      1






      I want to convert N columns into one series. How to do it effectively?



      Input:



       0 1 2 3
      0 64 98 47 58
      1 80 94 81 46
      2 18 43 79 84
      3 57 35 81 31


      Expected Output:



      0 64
      1 80
      2 18
      3 57
      4 98
      5 94
      6 43
      7 35
      8 47
      9 81
      10 79
      11 81
      12 58
      13 46
      14 84
      15 31
      dtype: int64


      So Far I tried:



      print df[0].append(df[1]).append(df[2]).append(df[3]).reset_index(drop=True)


      I'm not satisfied with my solution, moreover it won't work for dynamic columns. Please help me to find a better approach.










      share|improve this question
















      I want to convert N columns into one series. How to do it effectively?



      Input:



       0 1 2 3
      0 64 98 47 58
      1 80 94 81 46
      2 18 43 79 84
      3 57 35 81 31


      Expected Output:



      0 64
      1 80
      2 18
      3 57
      4 98
      5 94
      6 43
      7 35
      8 47
      9 81
      10 79
      11 81
      12 58
      13 46
      14 84
      15 31
      dtype: int64


      So Far I tried:



      print df[0].append(df[1]).append(df[2]).append(df[3]).reset_index(drop=True)


      I'm not satisfied with my solution, moreover it won't work for dynamic columns. Please help me to find a better approach.







      python pandas dataframe series






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 15 '18 at 11:11









      today

      11.8k22542




      11.8k22542










      asked Nov 15 '18 at 10:49









      Mohamed Thasin ahMohamed Thasin ah

      4,09932042




      4,09932042






















          6 Answers
          6






          active

          oldest

          votes


















          1














          You can also use Series class and .values attribute:



          pd.Series(df.values.T.flatten())


          Output:



          0 64
          1 80
          2 18
          3 57
          4 98
          5 94
          6 43
          7 35
          8 47
          9 81
          10 79
          11 81
          12 58
          13 46
          14 84
          15 31
          dtype: int64





          share|improve this answer






























            3














            you need np.flatten



            pd.Series(df.values.flatten(order='F'))

            out
            0 64
            1 80
            2 18
            3 57
            4 98
            5 94
            6 43
            7 35
            8 47
            9 81
            10 79
            11 81
            12 58
            13 46
            14 84
            15 31
            dtype: int64





            share|improve this answer






























              2














              You can use unstack



              pd.Series(df.unstack().values)





              share|improve this answer
































                2














                Here's yet another short one.



                >>> pd.Series(df.values.ravel(order='F')) 
                >>>
                0 64
                1 80
                2 18
                3 57
                4 98
                5 94
                6 43
                7 35
                8 47
                9 81
                10 79
                11 81
                12 58
                13 46
                14 84
                15 31
                dtype: int64





                share|improve this answer
































                  1














                  Use pd.melt() -



                  df.melt()['value']


                  Output



                  0 64
                  1 80
                  2 18
                  3 57
                  4 98
                  5 94
                  6 43
                  7 35
                  8 47
                  9 81
                  10 79
                  11 81
                  12 58
                  13 46
                  14 84
                  15 31
                  Name: value, dtype: int64





                  share|improve this answer






























                    1














                    df.T.stack().reset_index(drop=True)


                    Out:



                    0 64
                    1 80
                    2 18
                    3 57
                    4 98
                    5 94
                    6 43
                    7 35
                    8 47
                    9 81
                    10 79
                    11 81
                    12 58
                    13 46
                    14 84
                    15 31
                    dtype: int64





                    share|improve this answer























                      Your Answer






                      StackExchange.ifUsing("editor", function ()
                      StackExchange.using("externalEditor", function ()
                      StackExchange.using("snippets", function ()
                      StackExchange.snippets.init();
                      );
                      );
                      , "code-snippets");

                      StackExchange.ready(function()
                      var channelOptions =
                      tags: "".split(" "),
                      id: "1"
                      ;
                      initTagRenderer("".split(" "), "".split(" "), channelOptions);

                      StackExchange.using("externalEditor", function()
                      // Have to fire editor after snippets, if snippets enabled
                      if (StackExchange.settings.snippets.snippetsEnabled)
                      StackExchange.using("snippets", function()
                      createEditor();
                      );

                      else
                      createEditor();

                      );

                      function createEditor()
                      StackExchange.prepareEditor(
                      heartbeatType: 'answer',
                      autoActivateHeartbeat: false,
                      convertImagesToLinks: true,
                      noModals: true,
                      showLowRepImageUploadWarning: true,
                      reputationToPostImages: 10,
                      bindNavPrevention: true,
                      postfix: "",
                      imageUploader:
                      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                      allowUrls: true
                      ,
                      onDemand: true,
                      discardSelector: ".discard-answer"
                      ,immediatelyShowMarkdownHelp:true
                      );



                      );













                      draft saved

                      draft discarded


















                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53317743%2fhow-to-convert-dataframe-into-series%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown

























                      6 Answers
                      6






                      active

                      oldest

                      votes








                      6 Answers
                      6






                      active

                      oldest

                      votes









                      active

                      oldest

                      votes






                      active

                      oldest

                      votes









                      1














                      You can also use Series class and .values attribute:



                      pd.Series(df.values.T.flatten())


                      Output:



                      0 64
                      1 80
                      2 18
                      3 57
                      4 98
                      5 94
                      6 43
                      7 35
                      8 47
                      9 81
                      10 79
                      11 81
                      12 58
                      13 46
                      14 84
                      15 31
                      dtype: int64





                      share|improve this answer



























                        1














                        You can also use Series class and .values attribute:



                        pd.Series(df.values.T.flatten())


                        Output:



                        0 64
                        1 80
                        2 18
                        3 57
                        4 98
                        5 94
                        6 43
                        7 35
                        8 47
                        9 81
                        10 79
                        11 81
                        12 58
                        13 46
                        14 84
                        15 31
                        dtype: int64





                        share|improve this answer

























                          1












                          1








                          1







                          You can also use Series class and .values attribute:



                          pd.Series(df.values.T.flatten())


                          Output:



                          0 64
                          1 80
                          2 18
                          3 57
                          4 98
                          5 94
                          6 43
                          7 35
                          8 47
                          9 81
                          10 79
                          11 81
                          12 58
                          13 46
                          14 84
                          15 31
                          dtype: int64





                          share|improve this answer













                          You can also use Series class and .values attribute:



                          pd.Series(df.values.T.flatten())


                          Output:



                          0 64
                          1 80
                          2 18
                          3 57
                          4 98
                          5 94
                          6 43
                          7 35
                          8 47
                          9 81
                          10 79
                          11 81
                          12 58
                          13 46
                          14 84
                          15 31
                          dtype: int64






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 15 '18 at 11:04









                          todaytoday

                          11.8k22542




                          11.8k22542























                              3














                              you need np.flatten



                              pd.Series(df.values.flatten(order='F'))

                              out
                              0 64
                              1 80
                              2 18
                              3 57
                              4 98
                              5 94
                              6 43
                              7 35
                              8 47
                              9 81
                              10 79
                              11 81
                              12 58
                              13 46
                              14 84
                              15 31
                              dtype: int64





                              share|improve this answer



























                                3














                                you need np.flatten



                                pd.Series(df.values.flatten(order='F'))

                                out
                                0 64
                                1 80
                                2 18
                                3 57
                                4 98
                                5 94
                                6 43
                                7 35
                                8 47
                                9 81
                                10 79
                                11 81
                                12 58
                                13 46
                                14 84
                                15 31
                                dtype: int64





                                share|improve this answer

























                                  3












                                  3








                                  3







                                  you need np.flatten



                                  pd.Series(df.values.flatten(order='F'))

                                  out
                                  0 64
                                  1 80
                                  2 18
                                  3 57
                                  4 98
                                  5 94
                                  6 43
                                  7 35
                                  8 47
                                  9 81
                                  10 79
                                  11 81
                                  12 58
                                  13 46
                                  14 84
                                  15 31
                                  dtype: int64





                                  share|improve this answer













                                  you need np.flatten



                                  pd.Series(df.values.flatten(order='F'))

                                  out
                                  0 64
                                  1 80
                                  2 18
                                  3 57
                                  4 98
                                  5 94
                                  6 43
                                  7 35
                                  8 47
                                  9 81
                                  10 79
                                  11 81
                                  12 58
                                  13 46
                                  14 84
                                  15 31
                                  dtype: int64






                                  share|improve this answer












                                  share|improve this answer



                                  share|improve this answer










                                  answered Nov 15 '18 at 11:05









                                  pydpyd

                                  2,13211229




                                  2,13211229





















                                      2














                                      You can use unstack



                                      pd.Series(df.unstack().values)





                                      share|improve this answer





























                                        2














                                        You can use unstack



                                        pd.Series(df.unstack().values)





                                        share|improve this answer



























                                          2












                                          2








                                          2







                                          You can use unstack



                                          pd.Series(df.unstack().values)





                                          share|improve this answer















                                          You can use unstack



                                          pd.Series(df.unstack().values)






                                          share|improve this answer














                                          share|improve this answer



                                          share|improve this answer








                                          edited Nov 15 '18 at 10:59

























                                          answered Nov 15 '18 at 10:55









                                          MedAliMedAli

                                          7,28174384




                                          7,28174384





















                                              2














                                              Here's yet another short one.



                                              >>> pd.Series(df.values.ravel(order='F')) 
                                              >>>
                                              0 64
                                              1 80
                                              2 18
                                              3 57
                                              4 98
                                              5 94
                                              6 43
                                              7 35
                                              8 47
                                              9 81
                                              10 79
                                              11 81
                                              12 58
                                              13 46
                                              14 84
                                              15 31
                                              dtype: int64





                                              share|improve this answer





























                                                2














                                                Here's yet another short one.



                                                >>> pd.Series(df.values.ravel(order='F')) 
                                                >>>
                                                0 64
                                                1 80
                                                2 18
                                                3 57
                                                4 98
                                                5 94
                                                6 43
                                                7 35
                                                8 47
                                                9 81
                                                10 79
                                                11 81
                                                12 58
                                                13 46
                                                14 84
                                                15 31
                                                dtype: int64





                                                share|improve this answer



























                                                  2












                                                  2








                                                  2







                                                  Here's yet another short one.



                                                  >>> pd.Series(df.values.ravel(order='F')) 
                                                  >>>
                                                  0 64
                                                  1 80
                                                  2 18
                                                  3 57
                                                  4 98
                                                  5 94
                                                  6 43
                                                  7 35
                                                  8 47
                                                  9 81
                                                  10 79
                                                  11 81
                                                  12 58
                                                  13 46
                                                  14 84
                                                  15 31
                                                  dtype: int64





                                                  share|improve this answer















                                                  Here's yet another short one.



                                                  >>> pd.Series(df.values.ravel(order='F')) 
                                                  >>>
                                                  0 64
                                                  1 80
                                                  2 18
                                                  3 57
                                                  4 98
                                                  5 94
                                                  6 43
                                                  7 35
                                                  8 47
                                                  9 81
                                                  10 79
                                                  11 81
                                                  12 58
                                                  13 46
                                                  14 84
                                                  15 31
                                                  dtype: int64






                                                  share|improve this answer














                                                  share|improve this answer



                                                  share|improve this answer








                                                  edited Nov 15 '18 at 11:07

























                                                  answered Nov 15 '18 at 11:05









                                                  timgebtimgeb

                                                  51.4k126794




                                                  51.4k126794





















                                                      1














                                                      Use pd.melt() -



                                                      df.melt()['value']


                                                      Output



                                                      0 64
                                                      1 80
                                                      2 18
                                                      3 57
                                                      4 98
                                                      5 94
                                                      6 43
                                                      7 35
                                                      8 47
                                                      9 81
                                                      10 79
                                                      11 81
                                                      12 58
                                                      13 46
                                                      14 84
                                                      15 31
                                                      Name: value, dtype: int64





                                                      share|improve this answer



























                                                        1














                                                        Use pd.melt() -



                                                        df.melt()['value']


                                                        Output



                                                        0 64
                                                        1 80
                                                        2 18
                                                        3 57
                                                        4 98
                                                        5 94
                                                        6 43
                                                        7 35
                                                        8 47
                                                        9 81
                                                        10 79
                                                        11 81
                                                        12 58
                                                        13 46
                                                        14 84
                                                        15 31
                                                        Name: value, dtype: int64





                                                        share|improve this answer

























                                                          1












                                                          1








                                                          1







                                                          Use pd.melt() -



                                                          df.melt()['value']


                                                          Output



                                                          0 64
                                                          1 80
                                                          2 18
                                                          3 57
                                                          4 98
                                                          5 94
                                                          6 43
                                                          7 35
                                                          8 47
                                                          9 81
                                                          10 79
                                                          11 81
                                                          12 58
                                                          13 46
                                                          14 84
                                                          15 31
                                                          Name: value, dtype: int64





                                                          share|improve this answer













                                                          Use pd.melt() -



                                                          df.melt()['value']


                                                          Output



                                                          0 64
                                                          1 80
                                                          2 18
                                                          3 57
                                                          4 98
                                                          5 94
                                                          6 43
                                                          7 35
                                                          8 47
                                                          9 81
                                                          10 79
                                                          11 81
                                                          12 58
                                                          13 46
                                                          14 84
                                                          15 31
                                                          Name: value, dtype: int64






                                                          share|improve this answer












                                                          share|improve this answer



                                                          share|improve this answer










                                                          answered Nov 15 '18 at 10:53









                                                          Vivek KalyanaranganVivek Kalyanarangan

                                                          5,1141830




                                                          5,1141830





















                                                              1














                                                              df.T.stack().reset_index(drop=True)


                                                              Out:



                                                              0 64
                                                              1 80
                                                              2 18
                                                              3 57
                                                              4 98
                                                              5 94
                                                              6 43
                                                              7 35
                                                              8 47
                                                              9 81
                                                              10 79
                                                              11 81
                                                              12 58
                                                              13 46
                                                              14 84
                                                              15 31
                                                              dtype: int64





                                                              share|improve this answer



























                                                                1














                                                                df.T.stack().reset_index(drop=True)


                                                                Out:



                                                                0 64
                                                                1 80
                                                                2 18
                                                                3 57
                                                                4 98
                                                                5 94
                                                                6 43
                                                                7 35
                                                                8 47
                                                                9 81
                                                                10 79
                                                                11 81
                                                                12 58
                                                                13 46
                                                                14 84
                                                                15 31
                                                                dtype: int64





                                                                share|improve this answer

























                                                                  1












                                                                  1








                                                                  1







                                                                  df.T.stack().reset_index(drop=True)


                                                                  Out:



                                                                  0 64
                                                                  1 80
                                                                  2 18
                                                                  3 57
                                                                  4 98
                                                                  5 94
                                                                  6 43
                                                                  7 35
                                                                  8 47
                                                                  9 81
                                                                  10 79
                                                                  11 81
                                                                  12 58
                                                                  13 46
                                                                  14 84
                                                                  15 31
                                                                  dtype: int64





                                                                  share|improve this answer













                                                                  df.T.stack().reset_index(drop=True)


                                                                  Out:



                                                                  0 64
                                                                  1 80
                                                                  2 18
                                                                  3 57
                                                                  4 98
                                                                  5 94
                                                                  6 43
                                                                  7 35
                                                                  8 47
                                                                  9 81
                                                                  10 79
                                                                  11 81
                                                                  12 58
                                                                  13 46
                                                                  14 84
                                                                  15 31
                                                                  dtype: int64






                                                                  share|improve this answer












                                                                  share|improve this answer



                                                                  share|improve this answer










                                                                  answered Nov 15 '18 at 10:57









                                                                  Naga KiranNaga Kiran

                                                                  2,5541617




                                                                  2,5541617



























                                                                      draft saved

                                                                      draft discarded
















































                                                                      Thanks for contributing an answer to Stack Overflow!


                                                                      • Please be sure to answer the question. Provide details and share your research!

                                                                      But avoid


                                                                      • Asking for help, clarification, or responding to other answers.

                                                                      • Making statements based on opinion; back them up with references or personal experience.

                                                                      To learn more, see our tips on writing great answers.




                                                                      draft saved


                                                                      draft discarded














                                                                      StackExchange.ready(
                                                                      function ()
                                                                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53317743%2fhow-to-convert-dataframe-into-series%23new-answer', 'question_page');

                                                                      );

                                                                      Post as a guest















                                                                      Required, but never shown





















































                                                                      Required, but never shown














                                                                      Required, but never shown












                                                                      Required, but never shown







                                                                      Required, but never shown

































                                                                      Required, but never shown














                                                                      Required, but never shown












                                                                      Required, but never shown







                                                                      Required, but never shown







                                                                      Popular posts from this blog

                                                                      How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

                                                                      Syphilis

                                                                      Darth Vader #20