【发布时间】:2018-12-26 09:54:15
【问题描述】:
这个问题衍生出了我之前发布的一个问题; Custom x-axis values in Power BI
假设如下数据集:
关注第二行和第三行。如何使下面相应图表中的线连续而不停在中间?
在 Excel 中,我曾经通过在为图形生成数据的公式中应用 NA() 来解决这个问题。是否有使用 DAX 的类似解决方案?
【问题讨论】:
-
我认为只有使用连续的 x 轴而不是分类轴时才会这样做。
这个问题衍生出了我之前发布的一个问题; Custom x-axis values in Power BI
假设如下数据集:
关注第二行和第三行。如何使下面相应图表中的线连续而不停在中间?
在 Excel 中,我曾经通过在为图形生成数据的公式中应用 NA() 来解决这个问题。是否有使用 DAX 的类似解决方案?
【问题讨论】:
简短版:
Unleash python 并按照那里的步骤,插入这个脚本(别担心,我在这里也添加了一些细节):
import pandas as pd
# retrieve index column
index = dataset[['YearWeek_txt']]
# subset input data for further calculations
dataset2 = dataset[['1', '2']]
# handle missing values
dataset2 = dataset2.fillna(method='ffill')
然后你就可以这样设置了:
对于内置选项,据我所知,这些是您的选择:
1.分类 YearMonth 和分类 x 轴不起作用
2.分类 YearMonth 和连续 x 轴不起作用
3. 数字 YearMonth 和分类 x 轴不起作用
4. 数字 YearMonth 和连续 x 轴不起作用
详细信息,从内置方法失败的原因开始:
1. 分类 YearMonth 和分类 x 轴
我使用了类似于您的表格屏幕截图的以下数据集:
YearWeek 1 2
201603 2.37 2.83
201606 2.55
201607 2.98
201611 2.33 2.47
201615 2.14 2.97
201619 2.15 2.02
201623 2.33 2.8
201627 3.04 2.57
201631 2.95 2.98
201635 3.08 2.16
201639 2.50 2.42
201643 3.07 3.02
201647 2.19 2.37
201651 2.38 2.65
201703 2.50 3.02
201711 2.10 2
201715 2.76 3.04
不,我没有费心手动复制您的所有数据。只是你的 YearWeek 系列。其余的是 2 到 3 之间的随机数。
然后我将数据设置为 1 和 2 的数字,并在 Power Query 编辑器中设置 YearWeek 一个类型的文本:
所以这是原始设置,带有像您这样的表格和图表:
数据按YearWeek_txt降序排列:
并且x轴设置为Categorical:
结论: 失败
2. 分类年月和数字 x 轴
和上面一样设置,你可以试试把x轴类型改成Continuous:
但正如您所见,它只是直接转回“分类”,大概是因为 YearWeek 的类型是 text。
结论: 失败
3. 数字 YearMonth 和分类 x 轴
我已经复制了原始设置,因此我有两个表 Categorical 和 Numerical,其中 YearWeek 的类型分别为 text 和 integer:
所以数字 YearMonth 和分类 x 轴仍然给你这个:
结论: 失败
4. 数字 YearMonth 和连续 x 轴不起作用
但是现在,使用与上面相同的设置,您可以将 x 轴类型更改为Continuous:
你最终会得到这个:
结论: 哈哈
在Power Query Editor中,激活Categorical表,选择Transform > Run Python Script并在运行Python Script Editor中插入以下sn-p:
# 'dataset' holds the input data for this script
import pandas as pd
# retrieve index column
index = dataset[['YearWeek_txt']]
# subset input data for further calculations
dataset2 = dataset[['1', '2']]
# handle missing values
dataset2 = dataset2.fillna(method='ffill')
单击OK 并单击此处dataset2 旁边的Table:
你会得到这个(确保列数据类型正确):
如您所见,没有更多的缺失值。 dataset2 = dataset2.fillna(method='ffill') 已将两列中的所有缺失值替换为前面的值。
单击“关闭并应用”返回桌面,享受您的表格和图表,不再缺少任何值:
结论: Python 很酷
结束说明:
这里有很多细节可能会出错,比如小数点、数据类型等等。让我知道你的情况如何,如果它对你不起作用,我会再看一遍。
【讨论】: