Select count(distinct column1),sum(column2) in python(No pandas)












0












$begingroup$


I have a csv file like below



ACCOUNT  SALES
001AB12 21
001AB12 68
001AB12 97
001AB14 62
001AB14 67
001AB110 58
001AB143 49
001AB143 21
001AB143 97
001AB143 93


I want to perform aggregate operation like below



Select distinct(count Account) ety_account_count,sum(sales) net_sales
from csv_file


I have tried



from collections import Counter, defaultdict
import csv
import sys

my_dict={}
account = defaultdict(Counter)
with open ('out_fldr/agg_csv.csv') as r_file:
for row in csv.DictReader(r_file,delimiter='|'):
account[row['ACCOUNT']] += float(int(row['SALES']))
print(account)


Here I am getting error
for elem, count in other.items():
AttributeError: 'float' object has no attribute 'items'

I trying to create dictionary where it will hold all the aggregate function and its like



my_dict = {'ETY_ACOCUNT' : 5 , 'MET_SALES': 633}


I am aware this can be done in pandas with its function, but I wanna do this in pure python way.









share







New contributor




Tpk43 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$

















    0












    $begingroup$


    I have a csv file like below



    ACCOUNT  SALES
    001AB12 21
    001AB12 68
    001AB12 97
    001AB14 62
    001AB14 67
    001AB110 58
    001AB143 49
    001AB143 21
    001AB143 97
    001AB143 93


    I want to perform aggregate operation like below



    Select distinct(count Account) ety_account_count,sum(sales) net_sales
    from csv_file


    I have tried



    from collections import Counter, defaultdict
    import csv
    import sys

    my_dict={}
    account = defaultdict(Counter)
    with open ('out_fldr/agg_csv.csv') as r_file:
    for row in csv.DictReader(r_file,delimiter='|'):
    account[row['ACCOUNT']] += float(int(row['SALES']))
    print(account)


    Here I am getting error
    for elem, count in other.items():
    AttributeError: 'float' object has no attribute 'items'

    I trying to create dictionary where it will hold all the aggregate function and its like



    my_dict = {'ETY_ACOCUNT' : 5 , 'MET_SALES': 633}


    I am aware this can be done in pandas with its function, but I wanna do this in pure python way.









    share







    New contributor




    Tpk43 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.







    $endgroup$















      0












      0








      0





      $begingroup$


      I have a csv file like below



      ACCOUNT  SALES
      001AB12 21
      001AB12 68
      001AB12 97
      001AB14 62
      001AB14 67
      001AB110 58
      001AB143 49
      001AB143 21
      001AB143 97
      001AB143 93


      I want to perform aggregate operation like below



      Select distinct(count Account) ety_account_count,sum(sales) net_sales
      from csv_file


      I have tried



      from collections import Counter, defaultdict
      import csv
      import sys

      my_dict={}
      account = defaultdict(Counter)
      with open ('out_fldr/agg_csv.csv') as r_file:
      for row in csv.DictReader(r_file,delimiter='|'):
      account[row['ACCOUNT']] += float(int(row['SALES']))
      print(account)


      Here I am getting error
      for elem, count in other.items():
      AttributeError: 'float' object has no attribute 'items'

      I trying to create dictionary where it will hold all the aggregate function and its like



      my_dict = {'ETY_ACOCUNT' : 5 , 'MET_SALES': 633}


      I am aware this can be done in pandas with its function, but I wanna do this in pure python way.









      share







      New contributor




      Tpk43 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.







      $endgroup$




      I have a csv file like below



      ACCOUNT  SALES
      001AB12 21
      001AB12 68
      001AB12 97
      001AB14 62
      001AB14 67
      001AB110 58
      001AB143 49
      001AB143 21
      001AB143 97
      001AB143 93


      I want to perform aggregate operation like below



      Select distinct(count Account) ety_account_count,sum(sales) net_sales
      from csv_file


      I have tried



      from collections import Counter, defaultdict
      import csv
      import sys

      my_dict={}
      account = defaultdict(Counter)
      with open ('out_fldr/agg_csv.csv') as r_file:
      for row in csv.DictReader(r_file,delimiter='|'):
      account[row['ACCOUNT']] += float(int(row['SALES']))
      print(account)


      Here I am getting error
      for elem, count in other.items():
      AttributeError: 'float' object has no attribute 'items'

      I trying to create dictionary where it will hold all the aggregate function and its like



      my_dict = {'ETY_ACOCUNT' : 5 , 'MET_SALES': 633}


      I am aware this can be done in pandas with its function, but I wanna do this in pure python way.







      python-3.x





      share







      New contributor




      Tpk43 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      Tpk43 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      Tpk43 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 9 mins ago









      Tpk43Tpk43

      1




      1




      New contributor




      Tpk43 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Tpk43 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Tpk43 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          0






          active

          oldest

          votes











          Your Answer





          StackExchange.ifUsing("editor", function () {
          return StackExchange.using("mathjaxEditing", function () {
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
          });
          });
          }, "mathjax-editing");

          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: "196"
          };
          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: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          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
          });


          }
          });






          Tpk43 is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f214008%2fselect-countdistinct-column1-sumcolumn2-in-pythonno-pandas%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          Tpk43 is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          Tpk43 is a new contributor. Be nice, and check out our Code of Conduct.













          Tpk43 is a new contributor. Be nice, and check out our Code of Conduct.












          Tpk43 is a new contributor. Be nice, and check out our Code of Conduct.
















          Thanks for contributing an answer to Code Review Stack Exchange!


          • 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.


          Use MathJax to format equations. MathJax reference.


          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%2fcodereview.stackexchange.com%2fquestions%2f214008%2fselect-countdistinct-column1-sumcolumn2-in-pythonno-pandas%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 make a Squid Proxy server?

          Is this a new Fibonacci Identity?

          19世紀