使用Power BI

时间:2019-03-03 23:22:58

标签: powerbi powerquery m

我正在尝试从文件夹加载csv文件,但是我需要对每个文件应用几个自定义步骤,包括删除默认的PromoteHeaders

我有一个自定义查询,可以成功加载单个文件。如何将其转换为可加载文件夹中所有文件的查询?

默认情况下,File.folder的“ promoteHeaders”由于缺少列名(我的自定义查询已解决)而弄乱了我的数据。

1 个答案:

答案 0 :(得分:0)

创建读取文件特定模板的函数的最简单方法是实际执行此操作。只需创建M即可读取它,然后右键单击实体将其转换为函数。

之后,转换M非常简单,因此它使用参数。

您可以创建一个空白查询并以此替换代码,例如,通过更多步骤进行自定义以满足您的文件要求。

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-37-a1a29a8b3623> in <module>()
----> 1 base_learner.fit(X)

D:\Anaconda3\lib\site-packages\sklearn\pipeline.py in fit(self, X, y, **fit_params)
    263             This estimator
    264         """
--> 265         Xt, fit_params = self._fit(X, y, **fit_params)
    266         if self._final_estimator is not None:
    267             self._final_estimator.fit(Xt, y, **fit_params)

D:\Anaconda3\lib\site-packages\sklearn\pipeline.py in _fit(self, X, y, **fit_params)
    228                 Xt, fitted_transformer = fit_transform_one_cached(
    229                     cloned_transformer, Xt, y, None,
--> 230                     **fit_params_steps[name])
    231                 # Replace the transformer of the step with the fitted
    232                 # transformer. This is necessary when loading the transformer

D:\Anaconda3\lib\site-packages\sklearn\externals\joblib\memory.py in __call__(self, *args, **kwargs)
    327 
    328     def __call__(self, *args, **kwargs):
--> 329         return self.func(*args, **kwargs)
    330 
    331     def call_and_shelve(self, *args, **kwargs):

D:\Anaconda3\lib\site-packages\sklearn\pipeline.py in _fit_transform_one(transformer, X, y, weight, **fit_params)
    612 def _fit_transform_one(transformer, X, y, weight, **fit_params):
    613     if hasattr(transformer, 'fit_transform'):
--> 614         res = transformer.fit_transform(X, y, **fit_params)
    615     else:
    616         res = transformer.fit(X, y, **fit_params).transform(X)

D:\Anaconda3\lib\site-packages\sklearn\compose\_column_transformer.py in fit_transform(self, X, y)
    445         self._validate_transformers()
    446         self._validate_column_callables(X)
--> 447         self._validate_remainder(X)
    448 
    449         result = self._fit_transform(X, y, _fit_transform_one)

D:\Anaconda3\lib\site-packages\sklearn\compose\_column_transformer.py in _validate_remainder(self, X)
    299         cols = []
    300         for columns in self._columns:
--> 301             cols.extend(_get_column_indices(X, columns))
    302         remaining_idx = sorted(list(set(range(n_columns)) - set(cols))) or None
    303 

D:\Anaconda3\lib\site-packages\sklearn\compose\_column_transformer.py in _get_column_indices(X, key)
    654         return list(np.arange(n_columns)[key])
    655     else:
--> 656         raise ValueError("No valid specification of the columns. Only a "
    657                          "scalar, list or slice of all integers or all "
    658                          "strings, or boolean mask is allowed")

然后为每个以内容为参数的文件调用自定义功能