In [1]:
import pandas as pd
In [43]:
class Table(pd.DataFrame):
_internal_names = pd.DataFrame._internal_names + ['tablename','filename']
_internal_names_set = set(_internal_names)
_metadata = ['dsname']
def __init__(self,*args,**kwargs):
dsname = kwargs.pop('dsname',None)
tablename = kwargs.pop('tablename',None)
filename = kwargs.pop('filename',None)
super(self.__class__,self).__init__(*args,**kwargs)
self.dsname = dsname
self.tablename = tablename
self.filename = filename
@property
def _constructor(self):
return self.__class__
In [44]:
t = Table([(1,2),(3,4),(5,6)],columns=['A','B'],dsname='foo',tablename='bar')
t
Out[44]:
In [45]:
type(t)
Out[45]:
In [46]:
s = t*3
s
Out[46]:
In [47]:
type(s)
Out[47]:
In [48]:
vars(s)
Out[48]:
In [49]:
u = t+s
In [50]:
type(u)
Out[50]:
In [51]:
vars(u)
Out[51]:
In [52]:
v = t[['A']]
v
Out[52]:
In [53]:
type(v)
Out[53]:
In [54]:
w = t
w['C'] = [10,20,30]
w
Out[54]:
In [55]:
type(w)
Out[55]:
In [56]:
vars(w)
Out[56]:
In [57]:
t
Out[57]:
In [58]:
t.dsname
Out[58]:
In [59]:
t.tablename
Out[59]:
In [60]:
t[['B','C']].dsname
Out[60]:
In [61]:
t[['B','C']].tablename
In [64]:
t.tablename
Out[64]:
In [65]:
Table()
Out[65]:
In [66]:
t
Out[66]:
In [69]:
t.index.values.tolist()
Out[69]:
In [ ]: