Это первая статья из серии из 5 постов о PowerQuery и Pandas.
Я попытаюсь ответить на вопрос.
«Что проще сделать в PowerQuery по сравнению с Pandas или наоборот».
Эта серия будет очень самоуверенной. Комментарий ниже для предлагаемых тем.
Обзор
При анализе данных или очистке данных вам может потребоваться получить описательную статистику о ваших данных. Это может быть для того, чтобы увидеть, есть ли какие-либо выбросы, или чтобы получить приблизительную оценку формы ваших данных.
PowerQuery
В PowerQuery вы можете получить описательную статистику о ваших данных двумя способами:
- Использование вкладки Вид › Предварительный просмотр данных
- Использование функции
Table.Profile()
Мы собираемся пропустить параметр предварительного просмотра данных, поскольку он доступен только в приложении PowerBI и версиях Excel для Office 365.
С другой стороны, Table.Profile()
работает аналогично методу describe()
Pandas. Вам просто нужно передать имя таблицы в функцию.
Недостатком является то, что это трудно расширить с другими агрегациями.
Например, предположим, что мы хотим расширить профиль следующих данных с помощью медианы.
Если мы добавим следующее, профиль + средний код
`= Table.Profile(#"Changed Type", {{"Median", each Type.Is(_, type number), List.Median}})`
Наша медиана будет следующей
Причина в том, что PowerQuery не может определить тип данных каждого столбца. В основном он не может понять этот код
each Type.Is(_, type number)
Решение состоит в том, чтобы сначала «приписать» столбцам правильный тип данных. Создайте новый запрос со следующим кодом. Назовите этот запрос drink_dtypes
let Query1 = type table [ country = text, beer_servings = number, spirit_servings = number, wine_servings = number, total_litres_of_pure_alcohol = number, continent = text ] in Query1
Это работает как «рисунок формата», но для запроса типа данных.
Затем вернемся к нашим исходным данным, заменим типы данных столбцов следующим образом (перед строкой на Table.Profile()
)
= Value.ReplaceType(#"Changed Type", drink_dtypes)
Теперь медиана выглядит следующим образом
Обратите внимание, что категориальные столбцы со средним значением, следовательно, равны нулю.
Панды
Панды, с другой стороны, имеют метод describe()
. Медиана включена по умолчанию, но если вы хотите вывести другой процентиль, скажем, 10-й процентиль, просто передайте его аргументу percentile
.
Вердикт
Pandas в этом случае проще. Однако PowerQuery лучше приспособлен для расширения, если столбцам правильно присвоены правильные типы данных.
Что еще нужно знать о возможностях PowerQuery и Pandas? Ознакомьтесь с моей книгой PowerQuery Guide to Pandas на Gumroad, Leanpub или Amazon.