python Namedtuple+pandas实现的数据分析工具

class AnalyticTool:

    """数据分析工具类

    使用示例:
        aly = AnalyticTool(
            ("goods_id", "storage"),
            [
                (1, 2),
                (2, 10),
                (2, 500)
            ]
        )
        result = aly.filter("goods_id IN (1, 2, 3) or storage < 600").order_by("goods_id desc, storage").limit(0, 1).all()
        result = aly.filter("col_name.str.contains('diy_string')")

    :param header: 表头
    :param table: 数据行组成的列表
    """

    @staticmethod
    def my_name_tuple(tuplename, filed_list):
        def __setattr__(self, key, value):
            self.__dict__[key] = value

        tuple_class = namedtuple(tuplename, filed_list)
        my_tuple = type(tuplename, (tuple_class,), {
   
   "__setattr__": __setattr__})
        return my_tuple

    def __init__(self, header: tuple, table: list):
        self.df = pd.DataFrame(table, columns=header).fillna(0)
        self.Result = self.my_name_tuple("Result", header)

    def sum_columns(self, columns: tuple) -> namedtuple:
        """ 多列求和 """
        Result = self.my_name_tuple(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值