python 二维元祖关联合并 返回列表

# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
import logging
import traceback


class concat_tuples_to_list():
    def __init__(self):
        pass

    # tuples = {tuple1, tuple2}
    # headers = {header1, header2}
    def concat_datasrcset(self,tuples, headers, condkey):
        result = {}
        try:
            if not tuples and not headers:
                result = {'errorcode':-1, 'errortext':'tuples or headers is not invalid'}
                return result
            header1 = headers['header1']
            header2 = headers['header2']

            if (condkey not in header1) and (condkey not in header2):
                result['errorcode'] = -1
                result['errortext'] = '%s is not in %s' % (condkey, headers)
                return result
            list1 = list(tuples['tuple1'])
            list2 = list(tuples['tuple2'])
            list1[:] = [list(t) for t in list1]
            list2[:] = [list(t) for t in list2]

            df1 = pd.DataFrame(list1, columns=header1)
            df2 = pd.DataFrame(list2, columns=header2)
            #合并二维列表
            df3 = pd.merge(df1, df2, how='left', on=condkey)
            df3 = df3.where(df3.notnull(), None)
            train_data = np.array(df3)
            result['datasrcset'] = train_data.tolist()
            result['errorcode'] = 0
            return result
        except Exception, ex:
            result['errorcode'] = -1
            result['errortext'] = '%s_%s:%s' % (traceback.print_exc(), Exception, ex)
            logging.error(result)
            return result
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值