精华内容
下载资源
问答
  • 通过堆叠合并和主键合并等多种合并方式,可以将这些表中需要的数据信息合并在一张表中供分析使用。 合并方法 堆叠合并:横向堆叠,纵向堆叠; 主键合并; 重叠合并; 堆叠合并 堆叠合并就是简单的把两个表拼在...

    描述

    分析一个业务的时候往往涉及到很多数据,比如企业融资信息、投资机构信息、行业标签、招聘数据、政策数据等,这些数据分别存储在不同的表中。通过堆叠合并和主键合并等多种合并方式,可以将这些表中需要的数据信息合并在一张表中供分析使用。

    合并方法

    1. 堆叠合并:横向堆叠,纵向堆叠;
    2. 主键合并;
    3. 重叠合并;

    堆叠合并

    堆叠合并就是简单的把两个表拼在一起,分为横向堆叠和纵向堆叠。

    横向堆叠

    横向堆叠就是指将后一个表的数据堆叠到前一个表的后几列,可以使用 concat 函数完成。

    concat 函数基本语法

    pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
              keys=None, levels=None, names=None, verify_integrity=False,copy=True)
    

    objs:表示需要合并的表的组合[d1, d2],接收多个Series, DataFrame, Panel 的组合,无默认;

    axis:默认为0,axis=0表示做列对齐,列名一致的话,将后表数据添加到前表的下几行;

                              axis=1表示做行对齐,行标签一致的话,将后表的数据添加到前表的后几列;

    join:默认为outer,接收‘inner’或‘outer’,表示取交集或并集;

    其他参数相对不是那么常用,有兴趣的可以参考:concat函数的常用参数及说明

     

    Python代码

    # -*- coding=utf-8 -*-
    import pandas as pd
    import numpy as np
    from pandas import DataFrame,Series
    import math
    
    #导入数据
    eventfile = u'D:\\pythondata\\yuchuli\\event.xlsx'#投融资事件
    event = pd.read_excel(eventfile)
    event = DataFrame(event)
    
    eventbufile = u'D:\\pythondata\\yuchuli\\event_bu.xlsx'#投融资事件补充数据
    event_bu = pd.read_excel(eventbufile)
    event_bu = DataFrame(event_bu)
    
    #合并文件
    event_1 = pd.concat([event, event_bu], axis = 1, join='outer', sort=False)
    event_2 = pd.concat([event, event_bu], axis = 0, join='outer', sort=False)
    event_3 = pd.concat([event, event_bu], axis = 1, join='inner', sort=False)
    event_4 = pd.concat([event, event_bu], axis = 0, join='inner', sort=False)
    print("原文件,左文件的大小:", event.shape)
    print("原文件,右文件的大小:", event_bu.shape)
    print("axis = 1, join='outer'合并后的文件大小:", event_1.shape, "--行数取并集1000,右文件添加到左文件的后几列")
    print("axis = 0, join='outer'合并后的文件大小:", event_2.shape, "--列数取并集13,右文件添加到左文件的下几行")
    print("axis = 1, join='inner'合并后的文件大小:", event_3.shape, " --行数取交集100,右文件添加到左文件的后几列")
    print("axis = 0, join='inner'合并后的文件大小:", event_4.shape, "--列数取交集11,右文件添加到左文件的下几行")

    输出结果: 

    原文件,左文件的大小: (1000, 11)
    原文件,右文件的大小: (100, 13)
    axis = 1, join='outer'合并后的文件大小: (1000, 24) --行数取并集1000,右文件添加到左文件的后几列
    axis = 0, join='outer'合并后的文件大小: (1100, 13) --列数取并集13,  右文件添加到左文件的下几行
    axis = 1, join='inner'合并后的文件大小: (100, 24)  --行数取交集100, 右文件添加到左文件的后几列
    axis = 0, join='inner'合并后的文件大小: (1100, 11) --列数取交集11,  右文件添加到左文件的下几行

    所以,横向堆叠就是指 concat 函数的参数 axis = 1 的情况(右文件添加到左文件的后几列),至于是用 ‘inner’ 或 ‘outer’ ,就要视实际情况而定了,但是一般情况下是使用 outer ,通俗的讲,一般合并数据的人都不希望越合并越小了。

     

    纵向堆叠

    与横向堆叠相对的,纵向堆叠则是指将后一个表的数据堆叠到前一个表的下几行,也就是上述Python代码中 concat 函数的参数 axis = 0 的情况。除了 concat 函数,append 方法也可以实现纵向堆叠。

    Python代码

    # -*- coding=utf-8 -*-
    import pandas as pd
    import numpy as np
    from pandas import DataFrame,Series
    
    #导入数据
    eventfile = u'D:\\pythondata\\yuchuli\\event.xlsx'#投融资事件
    event = pd.read_excel(eventfile)
    event = DataFrame(event)
    
    eventbufile = u'D:\\pythondata\\yuchuli\\event_bu.xlsx'#投融资事件补充数据
    event_bu = pd.read_excel(eventbufile)
    event_bu = DataFrame(event_bu)
    
    #合并文件
    event_1 = event.append(event_bu, sort=False)
    event_2 = pd.concat([event, event_bu], axis = 0, join='outer', sort=False)
    print("原文件,左文件的大小:", event.shape)
    print("原文件,右文件的大小:", event_bu.shape)
    print("append 方法合并后的文件大小:", event_1.shape)
    print("axis = 0, join='outer'合并后的文件大小:", event_2.shape)

    输出结果:

    原文件,左文件的大小: (1000, 11)
    原文件,右文件的大小: (100, 13)
    append 方法合并后的文件大小: (1100, 13)
    axis = 0, join='outer'合并后的文件大小: (1100, 13)

    所以,append 方法对应的是 concat 函数中 axis = 0, join='outer' 的情况。

     


    主键合并

    主键合并就是指前后两个表按照一个或者多个键匹配的方式连接起来,一般是以某一或多列为键,匹配其他列,很类似 SQL 中的 join。pandas 库中的 merge 函数和 join 函数都可以实现主键合并,和 SQL 中的 join 一样, merge 函数和 join 函数也有左连接(left)、右连接(right)、内连接(inner)、外链接(outer)。

    merge 函数不仅可以实现 SQL 中的 join 函数的全部功能,还可以在匹配的过程中对数据进行排序,通过其中的 sort 参数实现。

    merge 函数基本语法

    pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,left_index=False, 
             right_index=False,sort=False,suffixes=('_x', '_y'), copy=True,
             indicator=False,validate=None)

    left, right:分别表示需要匹配的左表和右表,可接收的数据类型为 DataFrame;

    how:表示左右表的连接方式,默认为 inner ,可接收的取值为 left、right、inner、outer;

    on:表示左右表的连接主键,两个表的主键名称一致的时候才可以使用 on 参数,不一致时需使用left_on,right_on参数, on 参数默认为None,可接收的数据类型为 str 或 sequence ;

    left_on,right_on:分别表示左表和右表的连接主键,默认为None,可接收的数据类型为 str 或 sequence ;

    sort:表示是否对合并后的数据进行排序,默认为False,可接收的数据类型为boolean ;

    其他参数相对不是那么常用,有兴趣的可以参考:merge函数的常用参数及说明

     

    join 函数基本语法

    data1.join(data2, on=None,how='inner', lsuffix='', rsuffix='', sort=False)
    

    join 函数与 merge 函数 不同之处在于,join 函数要求两个主键的名称必须相同。

    Python代码

    # -*- coding=utf-8 -*-
    import pandas as pd
    import numpy as np
    from pandas import DataFrame,Series
    import math
    
    #导入数据
    eventfile = u'D:\\pythondata\\yuchuli\\event.xlsx'#投融资事件
    event = pd.read_excel(eventfile)
    event = DataFrame(event)
    event['事件id'] = event['事件id'].astype('str')#主键转化成str格式
    
    institutionfile = u'D:\\pythondata\\yuchuli\\institution.xlsx'#事件id对应投资机构
    institution = pd.read_excel(institutionfile)
    institution = DataFrame(institution)
    institution = institution.dropna()#去空值
    institution = institution.drop_duplicates()#去重复值
    institution['事件id'] = institution['事件id'].astype('str')#主键转化成str格式
    
    
    #合并文件
    event_1 = pd.merge(event,institution, how='left', left_on='事件id', right_on='事件id')
    event_2 = event.join(institution, on='事件id', how = 'left', rsuffix='1')
    
    print("原文件,左文件的大小:", event.shape)
    print("原文件,右文件的大小:", institution.shape)
    print("append 方法合并后的文件大小:", event_1.shape)
    print("join  方法合并后的文件大小:", event_2.shape)

    输出结果:

    原文件,左文件的大小: (1000, 11)
    原文件,右文件的大小: (48757, 2)
    append 方法合并后的文件大小: (1178, 12)
    join  方法合并后的文件大小: (1178, 12)

     


    重叠合并

    数据处理的过程中偶尔会出现同样一份数据存储在两张表中,单看两张表的话,哪一张的数据都不算全,但是如果将其中一个表的数据补充进另外一个表中,生成的这张新表则是相对完整的数据。这种方法就叫重叠合并,pandas 库中提供了 combine_first 方法来实现这一功能。

    combine_first 函数基本语法

    data1.combine_first(data2)

    Python代码

    # -*- coding=utf-8 -*-
    import pandas as pd
    import numpy as np
    from pandas import DataFrame,Series
    import math
    
    #导入数据
    df1 = pd.DataFrame([[3, 1, 7], [3, 5, np.nan],[np.nan, np.nan, np.nan]])
    df2 = pd.DataFrame([[9, np.nan, 4], [2, 1, 4]], index=[1, 2])
    
    #合并文件
    df = df1.combine_first(df2)
    print("合并前的df1:\n", df1)
    print("合并前的df2:\n", df2)
    print("combine_first 方法合并后的文件:\n", df)

    输出结果:

    合并前的df1:
          0    1    2
    0  3.0  1.0  7.0
    1  3.0  5.0  NaN
    2  NaN  NaN  NaN
    
    合并前的df2:
        0    1  2
    1  9  NaN  4
    2  2  1.0  4
    
    combine_first 方法合并后的文件:
          0    1    2
    0  3.0  1.0  7.0
    1  3.0  5.0  4.0
    2  2.0  1.0  4.0

     

    over!

     

     

    展开全文
  • 为了提高煤炭企业管理人员对管理信息系统中所展示的安全生产问题的认知效率和认知准确度,通过研究管理信息系统中安全生产信息展示方式的效果问题,将可视化内容分为安全生产现场的实时信息和统计汇总信息,分别选取了...
  • 前言: 今天在跟一个产品朋友讨论在软件开发中,应用开发...在实际的项目中,可以根据具体的场景进行选择和合并,并不是每一个步骤都得按部就班的进行,毕竟在软件开发行业,尤其是互联网行业,效率就是企业的生命力。

    前言:

    今天在跟一个产品朋友讨论在软件开发中,应用开发完成,从进入测试阶段到上线,中间应该具有哪些测试过程。进而谈论到应用的部署方式,由于本人只是开发,并不是专业的PMO,关于软件的全生命周期管理也是知之甚少,结合本人在实际工作中的经验,对测试阶段和部署方式进行一个总结和整理。


    测试阶段:

    测试主要分为单元测试,冒烟测试,回归测试,sit,uat这几个阶段。在实际的项目中,可以根据具体的场景进行选择和合并,并不是每一个步骤都得按部就班的进行,毕竟在软件开发行业,尤其是互联网行业,效率就是企业的生命力。但是对于金融类的应用,安全是第一位的,效率次之。

    单元测试:

    • 说明:单元测试主要由开发对自己写的代码进行单元化测试,所谓单元化需要根据具体的情况去判断,比如java中的一个类,前端页面的一个菜单,窗口,按钮等。总的来说,就是人为规定的最小的被测试模块。在我目前的公司中,都会要求每个开发对自己写的代码有单元测试,通过软件扫描,确定单元测试覆盖率,要保证在80%以上。

    • 人员: 主要由开发参与完成,每个开发人员负责自己开发部分的单元测试

    冒烟测试:

    • 说明:冒烟测试其实是微软首先提出来的一个概念,和微软一直提倡的每日build(构建版本)有很密切的联系。具体说,冒烟测试就是在每日build(构建版本)建立后,对系统的基本功能进行简单的测试。这种测试强调程序的主要功能进行的验证,而不会对具体功能进行更深入的测试。

    • 人员: 主要由测试人员参与,测试人员决定冒烟通过或者不通过,如果不通过可以列出具体的模块。

    回归测试:

    • 说明:回归测试是指修改了旧代码后,重新测试以确认修改没有引入新的错误或导致其他代码产生错误。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。
    • 回归测试场景:

    1.开发修改完bug之后:

    a.测试同学需要将之前发现bug的用例再次执行一遍,已验证此问题已经修复,然后关闭对应的bug单,写明必要备注

    b.验证其他和此bug有依赖关系的场景用例是否正常

    2.迭代上线前:

    每个迭代不同模块肯定有很多不同类型的bug,在前面场景1中都是零零散散的回归了开发修复的bug,等到最后上线时,往往我们会再进行一次回归测试

    范围:本次迭代全部场景

    方法:抽取其中部分用例做为回归测试用例

    执行:再次执行抽取的测试用例,记录结果

    • 抽取回归测试用例技巧:

    1、如果系统目前为止已经比较稳定,那回归测试的用例,可以根据8/2原则来挑选(80%的缺陷出现在20%的功能模块中),可以根据各模块缺陷的情况,将出现问题较多的模块进行执行用例;其他缺陷不多的模块,可以将缺陷相应的功能点进行用例执行;

    2、业务程度较复杂的,用户使用较频繁的功能模块进行回归测试;

    3、开发近期对某个功能模块进行了小功能的修改时,也需要进行回归测试,因为开发进行功能点修改或者优化时,不怕一万就怕万一,所以进行回归测试,保守一点。

    SIT测试:

    • 说明:System Integration Testing,系统集成测试,也就是前面的测试都通过后,部署到sit环境,进行测试。这个时候,测试人员根据新版本中增加的功能进行一一测试,在sit测试环境中,所用的测试数据是测试根据业务场景模拟的数据,并不是准确的线上数据或者接近线上数据。主要对系统功能进行校验,性能和可靠性进行测试。

    • 人员: 由测试人员部署,测试人员根据业务场景模拟数据进行测试。

    UAT测试:

    • 说明: User Acceptance Test,用户验收测试。这个阶段主要由测试和产品配合业务在UAT环境进行测试。测试的主力是验收方,也就是所谓的业务人员,因为他们是需求提出的源头,对于需求的理解最为透彻。在UAT测试阶段, 应该尽量使用生产数据或者接近真实的生产数据进行全流程测试。

    • 人员: 验收人员,业务,需求提出方为主力。在测试人员和产品经理的配合下完成。


    应用部署:

    在目前的软件开发中,随着自动化运维工具的不断提升,应用部署变得越来越简单。我们常用的开源CI/CD工具有Jenkins,ElectricFlow,IBM UrbanCode等,还有就是各个公司根据自己的情况开发的持续化部署工具。再加上目前运行服务的容器也在不断升级,从之前的物理机,到虚拟机,再到Docker,  k8s, openshift使得软件部署变得越来越简单,高效,准确率高。 目前我们公司使用的是openshift。基于上面的自动化部署工具和容器化技术,使得应用部署也越来越简单,安全。下面我们介绍下目前主要的几种应用部署方式:

    • Blue-Green Deployment

    蓝绿部署原理上很简单,就是通过冗余来解决问题。通常生产环境需要两组配置(蓝绿配置),一组是active的生产环境的配置(绿配置),一组是inactive的配置(蓝绿配置)。用户访问的时候,只会让用户访问active的服务器集群。在绿色环境(active)运行当前生产环境中的应用,也就是旧版本应用version1。当你想要升级到version2 ,在蓝色环境(inactive)中进行操作,即部署新版本应用,并进行测试。如果测试没问题,就可以把负载均衡器/反向代理/路由指向蓝色环境了。随后需要监测新版本应用,也就是version2 是否有故障和异常。如果运行良好,就可以删除version1 使用的资源。如果运行出现了问题,可以通过负载均衡器指向快速回滚到绿色环境。

    优点:

    •  如果出问题,影响范围较大;

    • 发布策略简单;

    • 用户无感知,平滑过渡;

    • 升级/回滚速度快。

    缺点:

    • 需要准备正常业务使用资源的两倍以上服务器,防止升级期间单组无法承载业务突发;

    • 短时间内浪费一定资源成本;

    • 基础设施无改动,增大升级稳定性。

        在早期物理服务器时代,成本比较昂贵,在云服务时代,大大节省了成本。

    Canary Deployment

    金丝雀发布,又叫灰度发布。是指在黑与白之间,能够平滑过渡的一种发布方式。AB Test 就是一种灰度发布方式,让一部分用户继续用 A,一部分用户开始用 B,如果用户对 B 没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到 B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

    A/B 测试是用来测试应用功能表现的方法,例如可用性、受欢迎程度、可见性等等。 A/B 测试通常用在应用的前端上,不过当然需要后端来支持。A/B 测试与蓝绿部署的区别在于, A/B 测试目的在于通过科学的实验设计、采样样本代表性、流量分割与小流量测试等方式来获得具有代表性的实验结论,并确信该结论在推广到全部流量可信;蓝绿部署的目的是安全稳定地发布新版本应用,并在必要时回滚。

    优点:

    • 保证整体系统稳定性,在初始灰度的时候就可以发现、调整问题,影响范围可控;

    • 新功能逐步评估性能,稳定性和健康状况,如果出问题影响范围很小,相对用户体验也少;

    • 用户无感知,平滑过渡。

    缺点:

    自动化要求高,有时候需要更多的数据库,服务器资源进行配合。

    部署过程:

    • 从LB摘掉灰度服务器,升级成功后再加入LB;

    • 少量用户流量到新版本;

    • 如果灰度服务器测试成功,升级剩余服务器。

    滚动发布:

    滚动发布是指每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版本升级新版本。

     

    • 红色:正在更新的实例

    • 蓝色:更新完成并加入集群的实例

    • 绿色:正在运行的实例

         优点:

    • 用户无感知,平滑过渡;

    • 节约资源。

    缺点:

    • 部署时间慢,取决于每阶段更新时间;

    • 发布策略较复杂;

    • 无法确定OK的环境,不易回滚。

    部署过程:

    • 先升级1个副本,主要做部署验证;

    • 每次升级副本,自动从LB上摘掉,升级成功后自动加入集群;

    • 事先需要有自动更新策略,分为若干次,每次数量/百分比可配置;

    • 回滚是发布的逆过程,先从LB摘掉新版本,再升级老版本,这个过程一般时间比较长;

    • 自动化要求高。


    小结:

    本文结合自己在参与项目中的实际情况和一些文章总结整理出了测试的阶段和应用部署的方式。在实际的项目中可以结合实际情况进行选择。

    展开全文
  • (12)长期股权投资的初始计量

    千次阅读 2016-10-13 09:55:25
    长期股权投资的初始投资成本,应分为企业合并(控股合并)和非企业合并两种情况确定。 初始投资的类型 影响程度 初始计量 初始确认 合并方式取得的长期股权投资 控制 同一控制下的企业合并 被...

    一、长期股权投资的初始计量原则

    长期股权投资的初始投资成本,应分为企业合并(控股合并)和非企业合并两种情况确定。

    初始投资的类型

    影响程度

    初始计量

    初始确认

    合并方式取得的长期股权投资

    控制

    同一控制下的企业合并

    被合并方所有者权益账面价值的份额

    非同一控制下的企业合并

    支付对价的公允价值为基础确定(长期股权投资)

    合并以外的其他方式取得的长期股权投资

    共同控制、重大影响

    【提示】合并方为进行企业合并发生的有关费用,指合并方为进行企业合并发生的各项直接相关费用,如为进行企业合并支付的审计费用、资产评估费用以及有关的法律咨询费用等增量费用。

    【相关费用的总结】

    初始投资的类型

    直接相关费用

    非直接相关费用

    合并方式取得的长期股权投资

    发生时计入当期损益(管理费用)

    发行债券的计入应付债券——利息调整

    发行股票的计入资本公积——股本溢价/资本溢价

    合并以外的其他方式取得的长期股权投资

    计入初始投资成本

    【例题1】发行股票,发行价格5元/股,数量1 000股,支付发行股权的手续费佣金10元。

    要求:作出相关账务处理。

    【答案】

    借:银行存款                  5 000

     贷:股本                    1 000

       资本公积——股本溢价            4 000

    借:资本公积——股本溢价             10

     贷:银行存款                   10

    最终资本公积——股本溢价为3 990元。

    【例题2】发行债券,发行面值1 000元,支付发行债券的手续费佣金10元。

    要求:作出相关账务处理。

    【答案】

    借:银行存款                  1 000

     贷:应付债券——面值              1 000

    借:应付债券——利息调整             10

     贷:银行存款                   10

    最终应付债券为990元。

    【提示】初始形成金融资产相关费用的总结

    初始投资类型

    直接相关费用

    1.合并方式取得长期股权投资(同一和非同一)

    计管理费用

    2.合并以外的其他方式形成的长期股权投资

    计长期股权投资成本

    3.交易性金融资产

    计投资收益

    4.贷款、持有至到期投资和可供出售金融资产

    计初始投资成本

    【相关链接】交易性金融资产、可供出售金融资产和持有至到期投资等的初始计量

    类 别

    初始计量

    以公允价值计量且其变动

    计入当期损益的金融资产

    公允价值

    持有至到期投资

    公允价值+交易费用

    贷款和应收款项

    公允价值+交易费用

    可供出售金融资产

    公允价值+交易费用

    二、初始计量的具体核算

    1.同一控制下的企业合并(一次交易实现企业合并)

    特点:不确认公允价值、不确认公允价值与账面价值的损益。

    长期股权投资的初始投资成本与支付的现金、转让的非现金资产的账面价值之间的差额,应当调整资本公积、资本公积不足冲减的调整留存收益(盈余公积和未非分配利润)。

    账务处理如下:

    借:长期股权投资(被合并方所有者权益账面价值的份额×持股比例)

      应收股利(价款中包含的股利)

      资本公积——资本溢价/股本溢价(借方差)

      盈余公积

      利润分配——未分配利润

     贷:银行存款等(付出资产的账面价值)

       资本公积——资本溢价或股本溢价(贷方差)

    【例题•单选题】2014年3月20日,甲公司以银行存款1 000万元及一项土地使用权取得其母公司控制的乙公司80%的股权,并于当日起能够对乙公司实施控制。合并日,该土地使用权的账面价值为3 200万元,公允价值为4 000万元;乙公司净资产的账面价值为6 000万元,公允价值为6 250万元。假定甲公司与乙公司的会计年度和采用的会计政策相同,不考虑其他因素,甲公司的下列会计处理中,正确的是(  )。

    A.确认长期股权投资5 000万元,不确认资本公积

    B.确认长期股权投资5 000万元,确认资本公积800万元

    C.确认长期股权投资4 800万元,确认资本公积600万元

    D.确认长期股权投资4 800万元,冲减资本公积200万元

    【答案】C
    【解析】同一控制下企业合并不认可公允价值,长期股权投资按照取得被合并方可辨认净资产的账面价值份额入账。同一控制下长期股权投资的入账价值=6 000×80%=4 800(万元)。应确认的资本公积=4 800-(1 000+3 200)=600(万元)。

    账务处理为:

    借:长期股权投资                4 800

     贷:银行存款                  1 000

       无形资产                  3 200

       资本公积——资本溢价或股本溢价    600(差额)

    2.非同一控制的下的企业合并(一次交易实现企业合并)

    购买方应当按照确定的企业合并成本作为长期股权投资的初始投资成本。

    企业的合并成本包括购买方付出的资产、发生或承担的负债、发行权益性证券的公允价值之和。

    【例题•单选题】甲、乙两公司属于非同一控制下的独立公司。甲公司于2014年12月1日以本公司的商品A对乙公司投资,取得乙公司55%的股份。该商品的市场价格为500万元,成本为400万元,另外用银行存款支付审计、法律费用1万元,乙公司2014年12月1日所有者权益公允价值为1 000万元,甲、乙两公司均属于增值税一般纳税人,适用的增值税税率为17%,甲公司该项长期股权投资的初始投资成本为(  )万元。

    A.520

    B.550

    C.350

    D.585

    【答案】D
    【解析】非同一控制下的企业合并,购买方应在购买日按为取得对被购买方的控制权而付出的资产、发生或承担的负债以及发行的权益性证券的公允价值之和作为长期股权投资的初始投资成本。

    账务处理为:

    借:长期股权投资                 585

      管理费用                    1

     贷:主营业务收入                 500

       应交税费——应交增值税(销项税额)      85

       银行存款                    1

    借:主营业务成本                 400

     贷:库存商品                   400

    【易错易混淆试题•计算分析题】2014年3月5日,A公司通过增发9 000万股本公司普通股股票(每股面值1元)取得无关联关系B公司80%的股权,该9 000万股股份的公允价值为15 600万元。为增发该部分股份,A公司向证券承销机构等支付了600万元的佣金和手续费,A公司支付发生的审计、法律评估等费用为100万元。假定A公司取得该部分股权后,能够对B公司的财务和生产经营决策实施控制。

    要求:作出相关账务处理。

    【答案】

    A公司应当以所发行股份的公允价值作为取得长期股权投资的成本,账务处理为:

    借:长期股权投资               15 600

     贷:股本                    9 000

       资本公积——股本溢价            6 600

    发行权益性证券过程中支付的佣金和手续费,应冲减权益性证券的溢价发行收入:

    借:资本公积——股本溢价             600

     贷:银行存款                   600

    支付的法律评估等费用:

    借:管理费用                   100

     贷:银行存款                   100

    3.合并以外的其他方式(不形成控股合并)取得长期股权投资的核算

    长期股权投资按照付出资产的公允价值与直接相关费用之和计量。

    【提示】与非同一控制下企业合并的最大区别是将直接相关费用计入长期股权投资初始投资成本,其他两者一致。

    【例题•计算题】2014年4月1日,甲公司从证券市场上购入丁公司股票,占丁公司发行在外股数的25%,作为长期股权投资来核算,购买时实际支付价款10 000万元(含已宣告但尚未发放的现金股利500万元),另支付相关税费40万元。

    要求:作出相关账务处理。

    【答案】

    甲公司的会计处理如下:

    借:长期股权投资                9 540

      应收股利                   500

     贷:银行存款                 10 040

    展开全文
  • 首酷企业进销存管理系统,专业的企业管理系统 一、系统特色 采用稳定、安全、高效的数据库系统 首酷进销存管理系统分为单机版和网络版,分别采用Microsoft公司的Access和SQL Server 2000作为后台数据库,...
  • 该案例采用目前最流行、最规范的Java EE架构,整个应用分为领域对象层、DAO层、业务逻辑层、MVC层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。 本书不再介绍Struts 1.x相关内容,如果读者希望...
  • 该案例采用目前最流行、最规范的java ee架构,整个应用分为jpa实体层、eao层、业务逻辑层、mvc层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了ide无关的、基于ant管理的项目源码...
  • 搜索引擎相关学习

    2013-09-11 09:50:02
    1:搜索引擎按原理和工作方式分为: A:爬虫式,主要用Socket实现,基于TCP/IP协议 B:目录索引式,以早期的yahoo为代表 C:元搜索引擎,即将多个搜索引擎的结果合并返回 2:按领域范围可分为: A:通用搜索...

    1:搜索引擎按原理和工作方式可分为:

    A:爬虫式,主要用Socket实现,基于TCP/IP协议

    B:目录索引式,以早期的yahoo为代表

    C:元搜索引擎,即将多个搜索引擎的结果合并返回

    2:按领域范围可分为:

    A:通用搜索引擎---针对全互联网全部网站和各种数据信息,信息全,领域广

    B:垂直搜索引擎---针对果某一行业,如企业库搜索,供求信息搜索,房产搜索等

    3:信息类型分类:

    二进制的文档,音频,视频,图片等。其中常见的二进制文档有:TXT,WORD,EXCEL,PPT,PDF,XML,HTML

    4:著名的搜索引擎列表

    A:Google,出现于1998年10月,由拉里.佩奇和谢尔盖.布林开创

    B:AltaVista,用户需要熟悉搜索的各个选项,以得到更精确的结果

    C:Yahoo,1994年4月发布,由美籍华人杨志远和David Filo共创,早期以第一代搜索引擎为主,人工输入,形成庞大的目录库,现在则是第二代搜索引擎,自动搜索并加入数据库

    D:Baidu,2000年1月,由李彦宏开创

    E:Sohu开创“搜狗”

    F:Sina开创“爱问”

    G:北大天网搜索

    H:腾迅2006年成立“SOSO”

    I:网易于2007年推出了自己的“网易有道”

    ------垂直搜索引擎------

    A:奇虎论坛搜索

    B:酷迅生活搜索

    C:258商业搜索

    D:去哪旅游搜索

    E:职友网搜索

    5:搜索引擎研究网站

    搜狗实验室---http://www.sogou.com/labs/

     

    6:搜索引擎算法

    A:深度优先算法,B:广度优先算法,C:IP段扫描算法

     

    7:网页分析过程

    单词提取->标点符号去除->大小写转换->超高频词汇去除->中文分词->提取URL,EMAIL,真正意文的文本信息等

    8:信息检索模型分类

    A:布尔模型,B:向量模型,C:概率模型,D:混合模型等

    9:搜索引擎通常要解决的基本问题

    A:信息抓取,B:数据解析,C:索引创建,D:执行检索

    10:你要知道什么叫“倒排索引”

    以字或词做为索引,非常适合“关键词”搜索

    11:当前主流的索引技术

    A:倒排索引

    B:反缀数组

    C:签名文件

    ------------------------------------------------------------------------------------------------------------

    Lucene常识总结

     

    12:Lucene中的分词方法

    (1)单词切分

    A:对于English和Chinese,我们用StandardAnalyzer就可以了

    B:ChineseAnalyzer

    (2)二分法

    对于中文,可用CJKAnalyzer,NGram(综合了单词切分和二分法)

    注:StandardAnalyzer,ChineseAnalyzer,CJKAnalyzer,NGram相关的jar包在:

    %LUCENE%/contrib/analyzers/lucene-analyzer-2.1.0.jar包中,视版本不同而异

    (3)词典法

    如IK分词器,实现了正反向全切分算法,它包括了两个分析器,MIK_CAnalyzer使用最大全切分算法和IKAnalyzer使用细粒度全切分算法,相关jar包为:IKAnalyzer.jar

    (4)语义法

    (5)基于词库,如JE分词器,可以向词库中添加新词,查看词,删除词,相关jar包为:je-analysis-1.5.1.jar

    Plus:中科院有个分词器,是dll形式,在Java中必须借助JNI,这样效率和效果都不好,容易死机,不建议采用

    (6)好了,说了这么多分词器,最后推荐大家用JE分词器,足够了

    13:常用二进制文档解析组件

    A:PDF---PDFBox,从http://sourceforge.net/projects/pdfbox/下载PDFBox类库并解压,将external和lib下的jar包全copy到你的应用程序/lib下

    B:WORD---用POI的一个组件包,textmining,从http://mirrors.ibiblio.org/pub/mirrors/maven2/org/textmining/tm-extractors/0.4/下载tm-extractors-0.4.zip

    C:EXCEL---JExcel,从http://www.andykhan.com/jexcelapi/下载

    D:XML---DOM4J,从http://www.dom4j.org/下载

    E:HTML---HTMLParser,从http://htmlparser.sourceforge.net/下载,我们需要filterbuilder.jar,htmlparser.jar,htmllexer.jar,thumbelina.jar

    F:Lius,用于从各种文档中提取文本信息,只是对PPT文档,只能解析出英文

    注:推荐使用Lius,

    14:索引创建方式

    静态索引,动态索引(增量索引)

    IndexWriter indexWriter = new IndexWriter(indexPath, new SimpleAnalyzer(), false);
    第三个参数的意思就是:是否覆盖原来的索引,false时为增量索引

    15:索引结构:

    多文件索引,复合索引

    调用indexWriter.useCompoundFile(false),为多文件索引,默认true为附和索引

    多文件索引时,会创建很多的文件,在打索引开时,会占用大量的文件句柄资源,造成系统响应慢。而复合索引则会成n倍的减少文件数量,但是,统一文件存储大量数据会造成数据更新比较慢

    16:建议不用IndexModifier,它在close时并没有真正删除Document,最好自己封装IndexWriter和IndexReader

    17:不要过度使用“过滤器”,会有不小的性能开销

    18:Lucene的逻辑组成,个人理解

    lucene索引由多个“索引块”(segment)组成,增量索引以新块形式出现,每个“索引块”由多个“文档”(document)组成,每个“文档”由多个“索引域”(field)组成,“分析器”对每个“索引域”进行分析,拆分成很多“索引项”,最终构成了lucene的索引

    19:Lucene的物理组成,个人理解

    A:通常所说的索引指的是:在某个目录下的所有索引文件

    B:多文件索引在创建时,至少会有fdt,fdx,fnm,frq,nrm,prx,tii,tis(这8个可以称为一个索引段)和segments.gen,segments_*10(这两个为独一的)文件,可以有单段多文件索引,也可以有多段多文件索引

    C:复合索引在创建时,会将以上8个文件合并,形成一个cfs文件,再加个两个独一的文件,所以,它也有单段复合索引和多段复合索引两种

    D:此外,多文件索引和复合索引还可以共存,但只有两个独一文件

    E:最后我们通过IndexWriter.optimize(),对所有的文件进行优化成3个文件,cfs,segments.gen和segments_*

    ------------------------------------------------------------------------------------------------------------

    实用分类总结

     

    20:我们大至可以分为:

    A:索引的建立和优化

    B:索引的管理

    C:解析用户请求

    D:组合多条件搜索

    E:过滤结果,进行排序,高亮处理等

    21:索引建立和优化

    一:建立

    (1)增量索引:IndexWriter indexWriter = new IndexWriter(indexPath, new SimpleAnalyzer(), false);
    (2)复合索引:indexWriter.useCompoundFile(true)

    (3)Field参数含义,Field field = new Field(名称,内容,存储方式,索引方式);

    存储方式有三种:Field.Store.NO(不存储),Field.Store.YES(存储),Field.Store.Compress(压缩存储)

    索引方式有四种:Field.Index.NO(不索引),Field.Index.TOKENIZED(分词并索引),Field.Index.UN_TOKENIZED(不分词索引),Field.Index.NO_NORMS(禁用分析器处理)

    (4)对不同文档Document使用不同分析器indexWriter.addDocument(doc,new StandardAnalyzer());

    (5)限制Field词条数量,indexWriter.setMaxFieldLength(200);

    (6)由于lucene采用统一的文档形式,所以对于非格式文本我们需要提前格式化,如数字和时间,最好定长表示,不足的用0补充,以保证检索和排序的正确性

    二:优化

    (1)利用缓存,减少磁盘读写频率

    A:indexWriter.setMergeFactor(10),每10个document合并为一个索引块,每10个索引块合并成一个大索引块,每10个大索引块合并成更大的索引块,依次类推

    B:indexWriter.setMaxBufferedDocs(100),用更多的内存换取更快的索引

    C:先建立内存索引,再写入磁盘,用RAMDirectory

    D:用indexWriter.optimize()自身优化

    (2)减少索引文件数量和大小

    22:索引的管理



    A:了解索引本身信息,我们需要了解HITS,HIT,Document各自的属性和方法,请参照相应的API

    B:索引的删除,添加,更新(本质是先删除,后添加)

    创建表态索引用和增量索引用:IndexWriter

    删除和添加索引用:IndexReader

    用IndexReader删除某个Document,只是做了删除标记,不参与检索,要用IndexWriter.optimize()将其物理删除

    C:不同目录的索引合并,用indexWriter.addIndexes(Directory directory),先把其中一个索引读入内存后优化,再用此方法加入到另一FSDirectory参数的indexWriter中,优化并关闭,这样这实现了两个索引的合并

    D:推荐用Luke,是一套lucene索引管理的软件

    23:解析用户请求

    A:自己写程序分析,提取用户输入的关键字

    B:用lucene自己的QueryParser解析,默认是OR逻辑

    24:组合多条件搜索

    A:用BooleanQuery可以实现“多索引域”搜索

    B:MultiSearcher虽然可以多索引搜索,但实质还是一个一个顺序进行的,可以用ParallelMultiSearcher实现多线程多索引搜索

    C:在BooleanQuery中,不能只含有BooleanClause.Occur.MUST_NOT,否则,只会返回空的结果集

    D:组合用QueryParser,TermQuery,BooleanQuery,RegexQuery足以满足检索需求,如下:

    Java代码 
    1. String indexPath = "你的索引目录";   
    2. String word_list[] = {"中国","北京"};   
    3. String feild_list[] ={"feild_a","feild_b"};   
    4. IndexSearcher indexSearcher = new IndexSearcher(indexPath);   
    5. Analyzer analyzer = new StandardAnalyzer();   
    6. BooleanQuery boolQuery = new BooleanQuery();   
    7.   
    8. for(int i = 0;i < 2;i++){   
    9.      QueryParser parser = new QueryParser(feild_list[i],analyzer);   
    10.      Query query = parser.parse(word_list[i]);   
    11.      boolQuery.add(query,BooleanClause.Occur.SHOULD);   
    12. }   
    13. //以上实现了对用户输入的数据实现了lucene自带的QueryParser解析   
    14. //同时在相应的feild_a和feild_b索引域附进行检索   
    15.   
    16. Term ta = new Term("date","20090101");   
    17. Term tb = new Term("date","20090131");   
    18. RangeQuery rangeQuery = new RangeQuery(ta,tb,true);   
    19. //日期以年月日方式,定才存储,这样才可以得到正确结果,true表示包括边界   
    20.   
    21. boolQuery.add(rangeQuery,BooleanClause.Occur.MUST);   
    22.   
    23. Hits hits = indexSearcher.search(boolQuery);  

    由此,我们可以实现,在用lucene自身QueryParser的前提下,

    D-1:同一“索引域”中检索不同关键字

    D-2:同一“索引域”中检索同一关键字

    D-3:不同“索引域”中检索不同关键字

    D-4:不同“索引域”中检索同一关键字

    是不是够你一般的实际检索了!!

    25:检索结果的过滤

    A:QueryFilter带有缓存,其它的RangeFilter,PrefixFilter,ChainedFilter都不带有缓存,要用CachingWrapperFilter包装才可

    B:尽量不用过滤器

    C:两种过滤方式,一种是在搜索结果提取出来后过滤,另一种是把过滤条件加在搜索条件中,后者是其于前者的,由此可见,在搜索前加入太多搜索条件对性能有很大的影响,在有必要更精确的搜索时,还是建议使用前者吧

    26:对检索结果进行排序

    A:默认排序规则:得分-->时间

    B:对多字段排序,如下

    Java代码 
    1. SortField sf1 = new SortField("id",false);//升序   
    2. SortField sf2 = new SortField("date",true);//降序   
    3. SortField fields[] = new SortField[]{sf1,sf2};   
    4. Sort sort = new Sort(fields);   
    5.   
    6. Hits hits = searcher.search(q,sort);//q是一个TermQuery  

     

    展开全文
  • 搜索引擎知识总结

    2012-03-29 21:19:00
    1:搜索引擎按原理和工作方式分为: A:爬虫式,主要用Socket实现,基于TCP/IP协议 B:目录索引式,以早期的yahoo为代表 C:元搜索引擎,即将多个搜索引擎的结果合并返回 2:按领域范围可分为: A:通用搜索...
  • lucene总结

    千次阅读 2009-07-13 19:19:00
    搜索引擎知识总结1:搜索引擎按原理和工作方式分为:A:爬虫式,主要用Socket实现,基于TCP/IP协议B:目录索引式,以早期的yahoo为代表C:元搜索引擎,即将多个搜索引擎的结果合并返回 2:按领域范围可分为:A:...
  • E-data分为设计端和运行端,设计端可以让用户在熟悉的类EXCEL环境下通过表单模型+流程模型+报表模型的设计,来实现按需定制符合自身业务的信息化管理系统,轻松实现信息化管理。运行端采用B/S架构,可以把设计端设计...
  • 互联网的兴起从本质上改变了整个社会的商品交易方式,国内各大企业从上个世纪90年代互联网兴起之时,就产生了通过网络进行销售经营商品的想法。但是由于在互联网上企业的信誉难以认证、网络法规政策不健全、物流不...
  • “英思” 系统分为三个组成部分:模板设计系统、桌面打印系统和创意管理器 “英思”模板设计系统与其他设计软件相比有很多优势,模板设计系统提供了详细的向导系统,设计了智能排版、缩放、旋转、移动、组选、锁定、...
  • “英思” 系统分为三个组成部分:模板设计系统、桌面打印系统和创意管理器 “英思”模板设计系统与其他设计软件相比有很多优势,模板设计系统提供了详细的向导系统,设计了智能排版、缩放、旋转、移动、组选、锁定、...
  • “英思” 系统分为三个组成部分:模板设计系统、桌面打印系统和创意管理器 “英思”模板设计系统与其他设计软件相比有很多优势,模板设计系统提供了详细的向导系统,设计了智能排版、缩放、旋转、移动、组选、锁定、...
  • “英思” 系统分为三个组成部分:模板设计系统、桌面打印系统和创意管理器 “英思”模板设计系统与其他设计软件相比有很多优势,模板设计系统提供了详细的向导系统,设计了智能排版、缩放、旋转、移动、组选、锁定、...
  • “英思” 系统分为三个组成部分:模板设计系统、桌面打印系统和创意管理器 “英思”模板设计系统与其他设计软件相比有很多优势,模板设计系统提供了详细的向导系统,设计了智能排版、缩放、旋转、移动、组选、锁定、...
  • ASP EXCEL导入SQL

    2013-01-23 01:17:24
    不同的企业用户,一般主要有几方面的自定义需求:业务对象、工作流程、报表、布局等,而361CRM平台的平台框架就决定着能够很好地满足用户的自定义需求,主要分为以下几个方面:  由于用户使用的是文档数据库,有着...
  • PROJECT 2007宝典 9/9

    2012-04-01 19:13:00
     15.1.4 合并打开的所有项目:快捷方式   15.1.5 在合并项目中移动子项目   15.2 理解合并项目和相关性   15.2.1 跨项目链接任务   15.2.2 修改跨项目的链接   15.2.3 合并项目——保存或不保存  ...
  • PROJECT 2007宝典 8/9

    2012-04-01 19:11:45
     15.1.4 合并打开的所有项目:快捷方式   15.1.5 在合并项目中移动子项目   15.2 理解合并项目和相关性   15.2.1 跨项目链接任务   15.2.2 修改跨项目的链接   15.2.3 合并项目——保存或不保存  ...
  • PROJECT 2007宝典 7/9

    2012-04-01 19:08:40
     15.1.4 合并打开的所有项目:快捷方式   15.1.5 在合并项目中移动子项目   15.2 理解合并项目和相关性   15.2.1 跨项目链接任务   15.2.2 修改跨项目的链接   15.2.3 合并项目——保存或不保存  ...
  • PROJECT 2007宝典 6/9

    2012-04-01 19:05:22
     15.1.4 合并打开的所有项目:快捷方式   15.1.5 在合并项目中移动子项目   15.2 理解合并项目和相关性   15.2.1 跨项目链接任务   15.2.2 修改跨项目的链接   15.2.3 合并项目——保存或不保存  ...
  • PROJECT 2007宝典 5/9

    2012-04-01 19:02:17
     15.1.4 合并打开的所有项目:快捷方式   15.1.5 在合并项目中移动子项目   15.2 理解合并项目和相关性   15.2.1 跨项目链接任务   15.2.2 修改跨项目的链接   15.2.3 合并项目——保存或不保存  ...
  • PROJECT 2007宝典 4/9

    2012-04-01 18:59:17
     15.1.4 合并打开的所有项目:快捷方式   15.1.5 在合并项目中移动子项目   15.2 理解合并项目和相关性   15.2.1 跨项目链接任务   15.2.2 修改跨项目的链接   15.2.3 合并项目——保存或不保存  ...
  • PROJECT 2007宝典 3/9

    2012-04-01 18:56:06
     15.1.4 合并打开的所有项目:快捷方式   15.1.5 在合并项目中移动子项目   15.2 理解合并项目和相关性   15.2.1 跨项目链接任务   15.2.2 修改跨项目的链接   15.2.3 合并项目——保存或不保存  ...
  • PROJECT 2007宝典 2/9

    2012-04-01 18:53:07
     15.1.4 合并打开的所有项目:快捷方式   15.1.5 在合并项目中移动子项目   15.2 理解合并项目和相关性   15.2.1 跨项目链接任务   15.2.2 修改跨项目的链接   15.2.3 合并项目——保存或不保存  ...
  • PROJECT 2007宝典 1/10

    2012-04-01 18:49:33
     15.1.4 合并打开的所有项目:快捷方式   15.1.5 在合并项目中移动子项目   15.2 理解合并项目和相关性   15.2.1 跨项目链接任务   15.2.2 修改跨项目的链接   15.2.3 合并项目——保存或不保存  ...
  • 分为自动新增方式与依指定存储格内容两种方式。 【插入批注背景】 可以选定任意一幅图片为批注背景来插入一个带图片背景的批注。可视化窗体操作,可随时更换批注样式,也支持批量多存储格样式修改。 【插入行数】 对...

空空如也

空空如也

1 2 3 4 5
收藏数 86
精华内容 34
关键字:

企业合并方式分为