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(
python Namedtuple+pandas实现的数据分析工具
最新推荐文章于 2024-10-24 08:45:18 发布