Table.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:LTTL 作者: axanthos 项目源码 文件源码
def to_flat(self, progress_callback=None):
        """Return a copy of the crosstab in 'flat' format"""
        new_header_col_id = '__id__'
        new_header_col_type = 'string'
        new_col_ids = [self.header_row_id or '__column__']
        num_row_ids = len(self.row_ids)
        if num_row_ids > 1:
            new_col_ids.append(self.header_col_id or '__row__')
            new_cached_row_id = None
            second_col_id = new_col_ids[1]
        else:
            new_cached_row_id = self.row_ids[0]
        new_col_type = dict([(col_id, 'discrete') for col_id in new_col_ids])
        row_counter = 1
        new_values = dict()
        new_row_ids = list()
        get_count = self.values.get
        first_col_id = new_col_ids[0]
        for row_id in self.row_ids:
            for col_id in self.col_ids:
                count = get_count((row_id, col_id), 0)
                for i in xrange(count):
                    new_row_id = text(row_counter)
                    new_row_ids.append(new_row_id)
                    new_values[(new_row_id, first_col_id)] = col_id
                    if num_row_ids > 1:
                        new_values[(new_row_id, second_col_id)] = row_id
                    row_counter += 1
            if progress_callback:
                progress_callback()
        return (
            FlatCrosstab(
                new_row_ids,
                new_col_ids,
                new_values,
                header_col_id=new_header_col_id,
                header_col_type=new_header_col_type,
                col_type=new_col_type,
                class_col_id=None,
                missing=self.missing,
                _cached_row_id=new_cached_row_id,
            )
        )
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号