我无法重现您的错误,但我强烈怀疑错误的来源是数据类型。在Power Query Editor中,尝试将分组变量转换为文本。对于大于20000行的数据集,查询失败这一事实与该问题完全无关。当然,除非数据内容在第20000行之后发生了变化。在
如果您可以描述您的数据源并在powerquery编辑器中显示应用的步骤,那么对于任何试图帮助您的人来说,这将是非常有帮助的。您还可以尝试一步一步地应用代码,这意味着使用dataset['id'] =dataset.groupby(['RESIDENTIAL_ADDRESS1','RESIDENTIAL_CITY']).ngroup()创建一个表,使用dataset['household_count'] = dataset.groupby(['id'])['id'].transform('count')创建另一个表
我不妨向您展示如何做到这一点,同时也可能巩固我对错误存在于数据类型的怀疑,并希望排除其他错误源。在
我使用numpy和一些随机的城市和街道名称来构建一个数据集,我希望它能代表真实世界数据集的结构和数据类型:
片段1:import numpy as np
import pandas as pd
np.random.seed(123)
strt=['Broadway', 'Bowery', 'Houston Street', 'Canal Street', 'Madison', 'Maiden Lane']
city=['New York', 'Chicago', 'Baltimore', 'Victory Boulevard', 'Love Lane', 'Utopia Parkway']
RESIDENTIAL_CITY=np.random.choice(strt,21000).tolist()
RESIDENTIAL_ADDRESS1=np.random.choice(strt,21000).tolist()
sample_dataset=pd.DataFrame({'RESIDENTIAL_CITY':RESIDENTIAL_CITY,
'RESIDENTIAL_ADDRESS1':RESIDENTIAL_ADDRESS1})
复制该片段,转到PowerBI Desktop > Power Query Editor > Transform > Run Python Script并运行它以获得以下信息:
然后对这个片段执行相同的操作:
^{pr2}$
现在你应该有这个:
到目前为止,您的最后一步是Changed Type 2。上面是一个叫做dataset的步骤。如果单击该按钮,您将看到ID的数据类型存在一个字符串ABC,并且在下一步中它将更改为编号123。在我的设置中,powerbi会自动插入步骤Changed Type 2。也许你不是这样吗?它很可能是一个潜在的误差源。在
接下来,插入最后一行作为它自己的步骤:dataset['household_count'] = dataset.groupby(['id'])['id'].transform('count')
现在您应该拥有如下所示的数据集,以及Applied Steps下的相同步骤:
有了这个装置,一切看起来都很好。那么,到目前为止,我们究竟知道什么?在数据集的大小不是问题
你的代码本身不是问题所在
Python应该在powerbi中完美地处理这个问题
我们怀疑什么?在您的数据就是问题所在—要么缺少值,要么类型错误
我希望这对你有所帮助。如果没有,请不要犹豫让我知道。在