title: Group similar functions within objects
body: <p>I am creating objects that contain the data in a pandas dataframe, and also many functions to import, query, modify and export the data to external files. I am doing this because I want the objects to contain the predefined complex pandas functions that we repeat frecuently.</p>
  
  <p>The list of functions is growing quite a lot so I wanted to be able to group those functions somehow so they are nicelly accessed</p>
  
  <p>Currenly  I have id defined as:</p>
  
  <pre class="lang-py prettyprint-override"><code>class myclass():
      def __init__(df):
          self.df = df
      def f1(self):
          print("Hello World")
      def f2(self,bar,foo)
          return self.df[["bar","foo"]].somefunction()
  # many more functions...
          def f40():
              self.df.rename(...,inplace=True)
  </code></pre>
  
  <p>And I use it like this:</p>
  
  <pre class="lang-py prettyprint-override"><code>a = myclass(df)
  a.f1()
  a.f2(bar,foo)
  a.f40()
  </code></pre>
  
  <p>I would like however to group it by import functions (i), query functions (q), manipulating functions (m) and output functions (o) so the sintax would look like this </p>
  
  <pre class="lang-py prettyprint-override"><code>a = myclass()
  a.i.f1()
  a.o.f2(bar,foo)
  a.m.f40()
  </code></pre>
  
  <p>What is the best way forward to do this?</p>
  
  <h1>Edit:</h1>
  
  <ul>
  <li>I have added the self parameter and the dataframe so it is clearer</li>
  <li>@chepner I guess this would work also. I just felt it would be nice to group them so when you start typing <code>myclass.</code> then you would only see [i,q,m,o] and then when selecting one of them <code>myclass.i.</code> you would only see the input group functions.</li>
  </ul>