How to convert continous data to Categorical in python?












0















All,



My dataset looks like following, and I Would like to add one column which can convert my last column i.e Day_of_The_week to Mon, Tue, Wed.
Note: Day_of_the_week include 5 days : Mon,Tue,Wed,Thurs,Fri. I checked link but couldn't figure out how to implement in my dataframe



enter image description here



I would like to convert my pandas dataframe as below:
enter image description here



Being a newbie to python,if you could provide explanation, that will be great!










share|improve this question



























    0















    All,



    My dataset looks like following, and I Would like to add one column which can convert my last column i.e Day_of_The_week to Mon, Tue, Wed.
    Note: Day_of_the_week include 5 days : Mon,Tue,Wed,Thurs,Fri. I checked link but couldn't figure out how to implement in my dataframe



    enter image description here



    I would like to convert my pandas dataframe as below:
    enter image description here



    Being a newbie to python,if you could provide explanation, that will be great!










    share|improve this question

























      0












      0








      0








      All,



      My dataset looks like following, and I Would like to add one column which can convert my last column i.e Day_of_The_week to Mon, Tue, Wed.
      Note: Day_of_the_week include 5 days : Mon,Tue,Wed,Thurs,Fri. I checked link but couldn't figure out how to implement in my dataframe



      enter image description here



      I would like to convert my pandas dataframe as below:
      enter image description here



      Being a newbie to python,if you could provide explanation, that will be great!










      share|improve this question














      All,



      My dataset looks like following, and I Would like to add one column which can convert my last column i.e Day_of_The_week to Mon, Tue, Wed.
      Note: Day_of_the_week include 5 days : Mon,Tue,Wed,Thurs,Fri. I checked link but couldn't figure out how to implement in my dataframe



      enter image description here



      I would like to convert my pandas dataframe as below:
      enter image description here



      Being a newbie to python,if you could provide explanation, that will be great!







      python pandas numeric categorical-data continuous






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 26 '18 at 23:50









      biggboss2019biggboss2019

      9519




      9519
























          1 Answer
          1






          active

          oldest

          votes


















          1















          calendar.day_name + pd.Series.map



          You can construct a dictionary and then map your integer series to a list of day strings:



          import pandas as pd
          from calendar import day_name
          from collections import deque

          df = pd.DataFrame({'Day_of_the_week': [2, 3, 4, 4, 5, 6, 6]})

          days = deque(day_name)
          days.rotate(df['Day_of_the_week'].iat[0]) # rotate days
          days_map = dict(enumerate(days)) # construct dictionary

          df['Day_Factor'] = df['Day_of_the_week'].map(days_map)

          print(df)

          Day_of_the_week Day_Factor
          0 2 Monday
          1 3 Tuesday
          2 4 Wednesday
          3 4 Wednesday
          4 5 Thursday
          5 6 Friday
          6 6 Friday





          share|improve this answer
























          • Thanks! The dictionary key's assigned 0 to Friday. I would like to assign key 6 to Friday. Is there a way to do that ? I would like my dictionary to start with 2 as Monday and ends at Key 6- Friday.

            – biggboss2019
            Nov 27 '18 at 0:13











          • @biggboss2019, Yes, as you can see that's what my logic does, you are rotating days by 2 days. Since the day_name has Monday at index 0, but you want it at index 2. To hardcode this, use 2 instead of df['Day_of_the_week'].iat[0].

            – jpp
            Nov 27 '18 at 0:16








          • 1





            Great. Thanks!!

            – biggboss2019
            Nov 27 '18 at 0:23











          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%2f53490801%2fhow-to-convert-continous-data-to-categorical-in-python%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1















          calendar.day_name + pd.Series.map



          You can construct a dictionary and then map your integer series to a list of day strings:



          import pandas as pd
          from calendar import day_name
          from collections import deque

          df = pd.DataFrame({'Day_of_the_week': [2, 3, 4, 4, 5, 6, 6]})

          days = deque(day_name)
          days.rotate(df['Day_of_the_week'].iat[0]) # rotate days
          days_map = dict(enumerate(days)) # construct dictionary

          df['Day_Factor'] = df['Day_of_the_week'].map(days_map)

          print(df)

          Day_of_the_week Day_Factor
          0 2 Monday
          1 3 Tuesday
          2 4 Wednesday
          3 4 Wednesday
          4 5 Thursday
          5 6 Friday
          6 6 Friday





          share|improve this answer
























          • Thanks! The dictionary key's assigned 0 to Friday. I would like to assign key 6 to Friday. Is there a way to do that ? I would like my dictionary to start with 2 as Monday and ends at Key 6- Friday.

            – biggboss2019
            Nov 27 '18 at 0:13











          • @biggboss2019, Yes, as you can see that's what my logic does, you are rotating days by 2 days. Since the day_name has Monday at index 0, but you want it at index 2. To hardcode this, use 2 instead of df['Day_of_the_week'].iat[0].

            – jpp
            Nov 27 '18 at 0:16








          • 1





            Great. Thanks!!

            – biggboss2019
            Nov 27 '18 at 0:23
















          1















          calendar.day_name + pd.Series.map



          You can construct a dictionary and then map your integer series to a list of day strings:



          import pandas as pd
          from calendar import day_name
          from collections import deque

          df = pd.DataFrame({'Day_of_the_week': [2, 3, 4, 4, 5, 6, 6]})

          days = deque(day_name)
          days.rotate(df['Day_of_the_week'].iat[0]) # rotate days
          days_map = dict(enumerate(days)) # construct dictionary

          df['Day_Factor'] = df['Day_of_the_week'].map(days_map)

          print(df)

          Day_of_the_week Day_Factor
          0 2 Monday
          1 3 Tuesday
          2 4 Wednesday
          3 4 Wednesday
          4 5 Thursday
          5 6 Friday
          6 6 Friday





          share|improve this answer
























          • Thanks! The dictionary key's assigned 0 to Friday. I would like to assign key 6 to Friday. Is there a way to do that ? I would like my dictionary to start with 2 as Monday and ends at Key 6- Friday.

            – biggboss2019
            Nov 27 '18 at 0:13











          • @biggboss2019, Yes, as you can see that's what my logic does, you are rotating days by 2 days. Since the day_name has Monday at index 0, but you want it at index 2. To hardcode this, use 2 instead of df['Day_of_the_week'].iat[0].

            – jpp
            Nov 27 '18 at 0:16








          • 1





            Great. Thanks!!

            – biggboss2019
            Nov 27 '18 at 0:23














          1












          1








          1








          calendar.day_name + pd.Series.map



          You can construct a dictionary and then map your integer series to a list of day strings:



          import pandas as pd
          from calendar import day_name
          from collections import deque

          df = pd.DataFrame({'Day_of_the_week': [2, 3, 4, 4, 5, 6, 6]})

          days = deque(day_name)
          days.rotate(df['Day_of_the_week'].iat[0]) # rotate days
          days_map = dict(enumerate(days)) # construct dictionary

          df['Day_Factor'] = df['Day_of_the_week'].map(days_map)

          print(df)

          Day_of_the_week Day_Factor
          0 2 Monday
          1 3 Tuesday
          2 4 Wednesday
          3 4 Wednesday
          4 5 Thursday
          5 6 Friday
          6 6 Friday





          share|improve this answer














          calendar.day_name + pd.Series.map



          You can construct a dictionary and then map your integer series to a list of day strings:



          import pandas as pd
          from calendar import day_name
          from collections import deque

          df = pd.DataFrame({'Day_of_the_week': [2, 3, 4, 4, 5, 6, 6]})

          days = deque(day_name)
          days.rotate(df['Day_of_the_week'].iat[0]) # rotate days
          days_map = dict(enumerate(days)) # construct dictionary

          df['Day_Factor'] = df['Day_of_the_week'].map(days_map)

          print(df)

          Day_of_the_week Day_Factor
          0 2 Monday
          1 3 Tuesday
          2 4 Wednesday
          3 4 Wednesday
          4 5 Thursday
          5 6 Friday
          6 6 Friday






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 26 '18 at 23:56









          jppjpp

          101k2163112




          101k2163112













          • Thanks! The dictionary key's assigned 0 to Friday. I would like to assign key 6 to Friday. Is there a way to do that ? I would like my dictionary to start with 2 as Monday and ends at Key 6- Friday.

            – biggboss2019
            Nov 27 '18 at 0:13











          • @biggboss2019, Yes, as you can see that's what my logic does, you are rotating days by 2 days. Since the day_name has Monday at index 0, but you want it at index 2. To hardcode this, use 2 instead of df['Day_of_the_week'].iat[0].

            – jpp
            Nov 27 '18 at 0:16








          • 1





            Great. Thanks!!

            – biggboss2019
            Nov 27 '18 at 0:23



















          • Thanks! The dictionary key's assigned 0 to Friday. I would like to assign key 6 to Friday. Is there a way to do that ? I would like my dictionary to start with 2 as Monday and ends at Key 6- Friday.

            – biggboss2019
            Nov 27 '18 at 0:13











          • @biggboss2019, Yes, as you can see that's what my logic does, you are rotating days by 2 days. Since the day_name has Monday at index 0, but you want it at index 2. To hardcode this, use 2 instead of df['Day_of_the_week'].iat[0].

            – jpp
            Nov 27 '18 at 0:16








          • 1





            Great. Thanks!!

            – biggboss2019
            Nov 27 '18 at 0:23

















          Thanks! The dictionary key's assigned 0 to Friday. I would like to assign key 6 to Friday. Is there a way to do that ? I would like my dictionary to start with 2 as Monday and ends at Key 6- Friday.

          – biggboss2019
          Nov 27 '18 at 0:13





          Thanks! The dictionary key's assigned 0 to Friday. I would like to assign key 6 to Friday. Is there a way to do that ? I would like my dictionary to start with 2 as Monday and ends at Key 6- Friday.

          – biggboss2019
          Nov 27 '18 at 0:13













          @biggboss2019, Yes, as you can see that's what my logic does, you are rotating days by 2 days. Since the day_name has Monday at index 0, but you want it at index 2. To hardcode this, use 2 instead of df['Day_of_the_week'].iat[0].

          – jpp
          Nov 27 '18 at 0:16







          @biggboss2019, Yes, as you can see that's what my logic does, you are rotating days by 2 days. Since the day_name has Monday at index 0, but you want it at index 2. To hardcode this, use 2 instead of df['Day_of_the_week'].iat[0].

          – jpp
          Nov 27 '18 at 0:16






          1




          1





          Great. Thanks!!

          – biggboss2019
          Nov 27 '18 at 0:23





          Great. Thanks!!

          – biggboss2019
          Nov 27 '18 at 0:23




















          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%2f53490801%2fhow-to-convert-continous-data-to-categorical-in-python%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

          A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

          Calculate evaluation metrics using cross_val_predict sklearn

          Insert data from modal to MySQL (multiple modal on website)