当前位置: 首页>>代码示例>>Python>>正文


Python Base.pd_df2diclist方法代码示例

本文整理汇总了Python中Base.Base.pd_df2diclist方法的典型用法代码示例。如果您正苦于以下问题:Python Base.pd_df2diclist方法的具体用法?Python Base.pd_df2diclist怎么用?Python Base.pd_df2diclist使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Base.Base的用法示例。


在下文中一共展示了Base.pd_df2diclist方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: DatabaseUpdate

# 需要导入模块: from Base import Base [as 别名]
# 或者: from Base.Base import pd_df2diclist [as 别名]
class DatabaseUpdate(object):
    
    def __init__(self):
        self.dbobj=DatabaseInterface()
        self.wp=StockInterfaceWrap()
        self.proc=StockDataProc()
        self.db_proc=DatabaseProc()
        self.base=Base()
    
    
    #默认数据库语句的建立方式为pd_df2diclist
    def _update_build_paras(self,df,keyindex=0):
        
        hd_method=self.base.pd_df2diclist
        #将索引值转化格式
        #索引可能是int或是list of int,为了便于处理,把int转为list
        keyindex=self.base.any_2list(keyindex)
        leftindex=self.base.lists_minus(range(len(df.columns)),keyindex)
        
        #建立数据库查询字典列表,由于列表可能很长,改为iter
        filt=iter(hd_method(df[keyindex]))
        #建立数据库更新字典表,由于列表可能很长,改为iter
        update=iter(hd_method(df[leftindex]))
        
        return (filt,update)
    
    def _update_arrayinsert(self,db_table,filter_val,update_key,update_val):
        updatecollnam=db_table['collnam']
        indexnam=db_table['itemnams'][0]
        
        filter_dic={indexnam:filter_val}
        update_dic=self.base.lists_2dict(update_key,update_val)
        
        self.dbobj.db_insertarray_many(filter_dic,update_dic,updatecollnam)
        
    def _update_updateiter(self,db_table,crawl_data):
        
        if crawl_data.empty:
            print 'no data...pass...'
            return -1
        #获取数据库索引项名称,更新时按照此索引更新
        keyindex=db_table['keyindex']
        #获取需要更新的数据库的表名
        updatecollnam=db_table['collnam']
        
        print updatecollnam+':start updating data.....'
        #------数据批量更新------
        #建立批量数据更新语句
        df_proc=crawl_data
        db_filt_list,db_update_list=self._update_build_paras(df_proc,keyindex)
         #批量更新
        self.dbobj.db_updatemultiprocess(db_filt_list,db_update_list,updatecollnam)
        
    def _update_insertarriter(self,db_table,crawl_data):
        if crawl_data.empty:
            print '无数据...跳过...'
            return -1
        #获取数据库索引项名称,更新时按照此索引更新
        keyindex=db_table['keyindex']
        #获取需要更新的数据库的表名
        updatecollnam=db_table['collnam']
        
        print updatecollnam+':StoBas part 开始初次插入数据.....'
        #------数据批量更新------
        #建立批量数据更新语句
        df_proc=crawl_data
        db_filt_list,db_update_list=self._update_build_paras(df_proc,keyindex)
         #批量更新
        print '批量更新数据....'
        self.dbobj.db_updateiter(db_filt_list,db_update_list,updatecollnam,self.dbobj.db_insertarray_one)
        
        
    def _insert_many(self,df,collnam,index_id=0,useiter=False):
         if not df.index.name is None:
                df.reset_index(level=index_id, inplace=True)
                
         insert_data=self.base.pd_df2diclist(df)
         #插入数据
         if useiter:
             self.dbobj.db_insertmultiprocess(insert_data,collnam)
         else:
             self.dbobj.db_insertmany(insert_data,collnam)
         self.dbobj.db_ensure_index(collnam,df.columns[index_id],unique=True)

    
    def _insert_initwithindex(self,tb,index_vals,index_id=0):
         insertcollnam=tb['collnam']
         insertitemnams=tb['itemnams']
         insertitemvals=tb['itemvals']
         #使用insert命令插入若干数据
         #构建insertone语句插入若干文件,格式:[{itemnam1:value1,itemnam2:value2},{itemnam1:value3,itemnam2:value4}]

         index_vals=self.base.any_2list(index_vals)
         
         df=pd.DataFrame(index=index_vals,columns=insertitemnams[1:])
         df.index.name=insertitemnams[index_id]
         
         m=len(index_vals)
         
         for x,y in zip(df.columns,insertitemvals):
#.........这里部分代码省略.........
开发者ID:rainwu,项目名称:stockdata,代码行数:103,代码来源:DatabaseUpdate.py


注:本文中的Base.Base.pd_df2diclist方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。