首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按字母+数字顺序按列对表格可视化进行排序?

如何按字母+数字顺序按列对表格可视化进行排序?
EN

Stack Overflow用户
提问于 2021-02-27 11:37:32
回答 1查看 34关注 0票数 0

我已经将一个数据加载到power BI (通过'Get Data'),它看起来像这样:

请注意,"R,W2,W3,....W11“中的”子工作负载“列是按字母和数字顺序正确排序的。

我只是想通过Power BI报告页面中的表可视化来显示这个表,但是PBI以错误的方式对列进行了排序。如下所示:

如何将其放回正确排序的方式?

如果这是不可能的,我是否可以编写python代码来可视化,以将表按原样放在报告上?我只想做一件简单的事情来表示报表上的表格,但是PBI让它变得如此困难。

EN

回答 1

Stack Overflow用户

发布于 2021-02-27 14:06:15

Powerbi也是一个microsoft product,所以我认为对于类似于资源管理器的排序,它也使用`natural sort order`接口。一个很好的解释可以在here找到。

代码语言:javascript
复制
import numpy as np
import pandas as pd
import re


df = pd.DataFrame({
    'Subworkload': ['R', 'W10', 'W11', 'W2', 'W3', 'W4', 'W5', 'W6', 'W7', 'W8', 'W9'],
    'Iteration': np.zeros(11),
    'Parameters': ['Buffer_size=Default_Num_Threads=1' for i in range(11)] 
})

def sort_nicely( l ):
    """ Sort the given list in the way that humans expect."""
    convert = lambda text: int(text) if text.isdigit() else text
    alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
    l.sort( key=alphanum_key )

    return l

val = sort_nicely(list(df['Subworkload']))
print(val)

:输出:

代码语言:javascript
复制
'R', 'W2', 'W3', 'W4', 'W5', 'W6', 'W7', 'W8', 'W9', 'W10', 'W11']

但根据StrCmpLogicalW,输出应该是:

代码语言:javascript
复制
'R', 'W10', 'W11', 'W2', 'W3', 'W4', 'W5', 'W6', 'W7', 'W8', 'W9']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66395355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档