Архив метки: _

Наиболее используемые функции Pandas

Pandas – одна из самых популярных и используемых библиотек Python. Функций в ней так много, что бывает трудно запомнить все. Но запомнить основые вполне возможно. В этой статье мы рассмотрим некоторые функции Pandas из числа наиболее используемых.

1. Считывание CSV-файла

Существует множество случаев, когда данные представлены в CSV-файле. Для загрузки таких файлов мы используем функцию read_csv(). Она имеет следующие параметры:

  • filepath – адрес файла для чтения в кавычках
  • sep для указания разделителя (по умолчанию – запятая)
  • header для указания номера строки, содержащей метки столбцов
  • names  (опциональный) для явного указания меток столбцов
  • index_col (опциональный) для указания, какой столбец используется в качестве меток строк

Пример:

df = pd.read_csv('train.csv')

Примечание редакции: подробнее о чтении CSV читайте в статье “Как прочитать CSV-файл в Python”.

2. head() и tail()

Для отображения первых и последних строк данных мы используем функции head() и tail() соответственно. Мы можем указать, сколько строк нужно вывести, передав число в функцию. По умолчанию она выводит пять строк.

Эти функции очень удобны для просмотра больших наборов данных, поскольку избавляет от необходимости прокрутки всего набора.

Вывод первых строк:

df.head()

Результат:

Таблица из пяти строк - вывод функции df.head() без указания количества выводимых строк.

Вывод двух последних строк:

df.tail(2)

Результат:

Таблица из двух строк, результат работы функции df.tail(2)

3. Shape

Для отображения размеров DataFrame, т.е. количества строк и столбцов, мы используем атрибут shape.

df.shape

# Результат:
#(891, 12)

4. info()

Эта функция используется для отображения информации о DataFrame, такой как номера, метки и типы данных столбцов, использование памяти, индекс диапазона и количество значений в каждом столбце (ненулевые значения).

df.info()
Вывод функции df.info()

Функция info() выводит общее количество записей в данных вместе с диапазоном. Приведенные данные имеют 11 столбцов, которые относятся к типам float, int и object (string). Они занимают 83,7 КБ памяти.

5. Describe

С помощью функции Pandas describe() мы можем вывести множество статистических значений в нескольких столбцах при помощи всего одной строки кода.

Для непрерывных переменных эта функция возвращает количество, среднее значение, медиану, стандартное отклонение, 25-й и 75-й процентили, максимальное и минимальное значения.

df.describe()
Вывод функции Pandas describe(): таблица на 7 столбцов

Функция describe() имеет параметр percentiles, в котором мы можем указать перцентили, которые хотим включить в вывод.

По умолчанию функция выдает статистическую сводку только для числовых переменных. Для отображения других переменных можно указать параметр include.

df.describe(include='all')

Результат:

Вывод функции df.describe(include='all'). Таблица на 12 столбцов.

Для категориальных переменных функция возвращает общее количество, количество уникальных значений, наиболее частое значение и его частоту.

Мы можем указать, хотим ли мы отображать только столбцы одного типа, например, числовые, объектные или категориальные. Давайте выведем только строковые:

df.describe(include = [np.object])
# используйте include = ['category'] для категориальных столбцов
# используйте include = [np.number] для числовых столбцов

Результат:

Таблица на 5 столбцов и 4 строки

Мы также можем использовать describe() для конкретного столбца (столбцов). Если же мы хотим удалить некоторые столбцы из сводки статистики, можно использовать параметр exclude.

6. value_counts

Для вычисления и отображения частотности каждого значения в столбце DataFrame используется функция value_counts().

df['Survived'].value_counts()

# Результат:
# 0    549
# 1    342
# Name: Survived, dtype: int64

Мы можем получить процентные значения для каждого уникального элемента в столбце, используя аргумент normalize=True.

df['Survived'].value_counts(normalize=True)*100

# Результат:
# 0    61.616162
# 1    38.383838
# Name: Survived, dtype: float64

Для наглядного представления чисел можно вывести график:

df['Survived'].value_counts(normalize=True).plot.bar()
Столбцовая диаграмма на два столбца: 0 и 1

7. Drop

Иногда нам необходимо удалить из данных некоторые столбцы и строки. Для этого используется функция drop().

С помощью параметра axis мы можем сообщить, столбец это или строка.

# столбец
df.drop(['Ticket'], axis=1, inplace=True)

# строка
df.drop(3, axis=0, inplace=True

Как вы уже поняли, axis=1 указывает на столбец, а axis=0 – на строку. inplace=True означает, что изменения сохраняются в исходном DataFrame.

8. Columns

Для отображения имен столбцов в DataFrame мы используем атрибут columns.

df.columns


# Результат:
# Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
#        'Parch', 'Fare', 'Cabin', 'Embarked'],
#       dtype='object')

9. rename()

Часто имена столбцов имеют нестандартный формат. Чтобы их изменить, мы используем функцию rename(). Для этого в функцию нужно передать текущее имя столбца и его новое имя:

df.rename(columns={'PassengerId' : 'ID'}, inplace=True)

Примечание редакции: об этом и других изменениях в столбцах читайте в статье “Обновление строк и столбцов в Pandas”.

10. unique() и nunique()

Для нахождения всех уникальных значений в столбце используется функция unique(), а для нахождения их количества – функция nunique().

df['Embarked'].unique()

# array(['S', 'C', 'Q', nan], dtype=object)

df['Embarked'].nunique()

# 3

Функция unique() включает значения nan, а функция unique() исключает их.

Перевод статьи «The Most Used Functions of Pandas».

Сообщение Наиболее используемые функции Pandas появились сначала на pythonturbo.


Source: pythonturbo.ru

Визуализация данных с помощью Seaborn

Здравствуйте, друзья! В этой статье мы продолжим изучение Seaborn и разберемся с линейным графиком.

Что такое линейный график?

Библиотека Seaborn используется в визуализации данных на основе моделей, построенных из наборов данных, для прогнозирования результатов и анализа вариаций в данных.

Линейные графики Seaborn отображают взаимосвязь между непрерывными и категориальными значениями в формате непрерывных точек.

В этой статье мы будем использовать приведенный ниже набор данных для манипуляций и формирования линейного графика. Прежде чем двигаться дальше, ознакомьтесь с приведенным ниже содержимым набора.

В приведенном ниже наборе данных колонки переменных – ‘cyl‘, ‘vs‘, ‘am‘, ‘gear‘ и ‘carb‘ – являются категориальными переменными, поскольку все значения данных относятся к определенной категории или диапазону значений.

В это время остальные колонки данных относятся к целочисленным/непрерывным переменным, поскольку они несут дискретные целочисленные значения.

Входной набор данных:

Массив данных MTCARS

Построение первого участка графика Seaborn

Чтобы начать работу с Line Plots, нам необходимо установить и импортировать библиотеку Seaborn в среду Python с помощью следующей команды:

Синтаксис:

pip install seaborn

После завершения установки импортируйте библиотеку в текущую рабочую среду и используйте функции:

Синтаксис:

import seaborn

Мы будем использовать также библиотеку Matplotlib, чтобы построить график данных и представить их в надлежащем для визуального восприятия виде.

Создание одиночного линейного графика с помощью Seaborn

Мы можем предоставить дискретные значения или использовать наборы данных для создания линейного графика Seaborn.

Синтаксис:

seaborn.lineplot(x, y, data)

  • x: Переменная с координатой для оси x
  • y: Переменная с координатой для оси y
  • data: Объект, указывающий на весь набор данных или значения данных.

Пример 1: Использование случайных данных для построения линейного графика Seaborn

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

Year = [2012, 2014, 2016, 2020, 2021, 2022, 2018]
Profit = [80, 75.8, 74, 65, 99.5, 19, 33.6]

data_plot = pd.DataFrame({"Year":Year, "Profit":Profit})

sns.lineplot(x = "Year", y = "Profit", data=data_plot)
plt.show()

На приведенном ниже линейном графике мы можем наблюдать линейную зависимость между двумя переменными – ” Year” и “Profit”.

Вывод:

Пример 2: Использование набора данных для создания линейного графика и отображения взаимосвязи между двумя переменными.

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,:5]
sns.lineplot(x = "drat", y = "mpg",data=info)
sns.set(style='dark',)
plt.show()

Исходные данные:

Входной набор данных Seaborn LinePlot

Вывод:

Одновременное изображение нескольких графиков

Мы можем создать несколько графиков для визуализации данных в одном и том же пространстве. Мы можем использовать один или несколько столбцов данных/переменных данных и изобразить взаимосвязь между ними в целом.

1. Использование параметра hue для изображения нескольких графиков разного цвета

Параметр hue используется для группировки различных переменных набора данных и поможет изобразить взаимосвязь между столбцами данных по оси x и y, причем столбец передается в качестве значения аргумента.

Синтаксис:

seaborn.lineplot(x,y,data,hue)

Пример:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,:5]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="cyl")
plt.show()

Приведенный ниже график представляет собой три линии разной цветовой гаммы, отображающие взаимосвязь между “drat“, “mpg” и “cyl” соответственно.

Вывод:

2. Использование параметра style для построения различных типов линий

Мы можем установить аргумент style, чтобы задать различные типы линий: штрих, точки (маркеры) и т.д.

Синтаксис:

seaborn.lineplot(x, y, data, style)

Пример 2:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,:5]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="cyl", style="cyl")
plt.show()

На графике представлены отношения значения ‘cyl’ к ‘mpg’ и ‘drat’ с различными структурами линий, т.е. простой линией, пунктиром и точками.

Вывод:

3. Использование параметра размера для построения нескольких линейных графиков в Seaborn

Мы можем использовать параметр size функции seaborn.lineplot() для представления взаимосвязей между несколькими переменными данных с помощью линии разного размера. Таким образом, эта линия действует как группирующая переменная с различным размером/шириной в зависимости от величины данных.

Синтаксис:

seaborn.lineplot(x, y, data, size)

Пример 3:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="gear",style="gear",size="gear")
plt.show()

Исходные данные:

Набор данных для построения нескольких графиков

Вывод:

Применение различной цветовой палитры

Цветовая карта и палитра Seaborn определяют цветовой диапазон для моделей визуализации. Параметр palette вместе с hue может использоваться для определения кодировки цветовой схемы.

Синтаксис:

seaborn.lineplot(x,y,data,hue,palette)

Пример:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
 
data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="gear", palette = "Set1")
plt.show()

Вывод:

Добавление полос ошибок к линейным графикам

Линейные графики могут быть использованы для определения доверительных уровней/интервалов на графиках для отображения коэффициентов ошибок с помощью параметра err_style.

Синтаксис:

seaborn.lineplot(x,y,data,err_style=”bars”)

Пример:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "cyl", y = "mpg",data=info, err_style="bars")
plt.show()

Вывод:

Установка различных стилей с помощью функции seaborn.set()

Функция Python seaborn.set() может быть использована для отображения графика с другим стилем фона.

Синтаксис:

seaborn.set(style)

Пример:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "cyl", y = "mpg",data=info,hue="gear")
sns.set(style='dark',)
plt.show()

Вывод:

Заключение

В этой статье мы разобрались с линейными графиками и их вариациями.

Перевод статьи «Data Visualization with Seaborn Line Plot».

Сообщение Визуализация данных с помощью Seaborn появились сначала на pythonturbo.


Source: pythonturbo.ru

Исправление ошибки ‘No such file or directory’ при установке пакетов

Введение

Частой ошибкой, которую вы можете получить при установке модулей Python, является ошибка ‘No such file or directory‘. Эти слова могут ввести в заблуждение, потому что обычно все файлы и каталоги из пакета, который вы пытаетесь установить находятся на своих местах. На самом деле, ошибка возникает из-за того, что Python пытается вызвать системный компилятор во время установки модуля, в то время как пути к нему закодированы в самом Python и он не находит нужные ему файлы. В этой статье будет приведен пример контекста получения ошибки и шаги по ее устранению на разных платформах.

Ошибки отсутствия компилятора

Пакеты Python обычно устанавливаются с помощью менеджера пакетов pip командой pip install. pip выведет список зависимостей, дополнительно требуемых выбранным вами пакетом, и длинный список результатов процесса установки. Иногда программа установки завершается с ошибкой, содержащей в конце вывода текст, подобный следующему:

Output
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.10 -I/usr/local/lib/python3.10/dist-packages/numpy/core/include -I/usr/include/python3.10 -c radiomics/src/_cmatrices.c -o build/temp.linux-x86_64-3.10/radiomics/src/_cmatrices.o
      error: command 'x86_64-linux-gnu-gcc' failed: No such file or directory
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> pyradiomics

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

Конкретно эта ошибка возникла в результате попытки установить pd-dwi с помощью pip install pd-dwi. Это библиотека Python, используемая в исследованиях химиотерапии.

Некоторые библиотеки Python, особенно те, которые используются для научных вычислений, после установки требуют компиляции дополнительного кода локально на вашей машине. Python – это интерпретируемый язык высокого уровня, который может работать только с интерпретатором Python. Языки низкого уровня, такие как C или Rust, которые иногда включаются в библиотеки Python для высокопроизводительной обработки, должны быть скомпилированы и оптимизированы, прежде чем стать исполняемыми. Если в вашей системе нет компилятора, установка завершится неудачно.

На большинстве современных платформ, когда вы устанавливаете менеджер пакетов Python, pip, он также устанавливает среду компилятора и соответствующие пакеты. Однако есть несколько причин, по которым этого может не произойти. Например, возможно, что компилятор был случайно удален или вообще не был установлен. И в отличие от Linux, на Mac или Windows пакеты Python обычно не устанавливаются системным менеджером пакетов, что может стать причиной возникновения проблем.

Следующие шаги этого руководства содержат инструкции по установке и проверке совместимого с Python компилятора на Ubuntu/Debian Linux, Red Hat/Rocky Linux, Windows и macOS.

Пакеты компиляторов для Ubuntu и Debian

На Ubuntu вы можете установить пакет build-essential, который предоставит все пакеты, необходимые для современной, хорошо поддерживаемой среды компилятора. build-essential – это так называемый мета-пакет. Он не относится к какому-то одному пакету, а скорее привлекает ряд общих инструментов компилятора в качестве зависимостей.

Вы также можете установить libpython3-dev. Это пакет экосистемы Ubuntu/Debian, который по сути “подключает” компилятор к Python и предоставляет всю необходимую конфигурацию бэкенда для автоматического вызова компилятора из Python или из pip. Обычно он устанавливается автоматически вместе с pip, но если вы устанавливаете pip без использования менеджера пакетов, он может отсутствовать.

Установите пакеты с помощью apt:

$ sudo apt install build-essential libpython3-dev

Это также приведет к установке ряда зависимостей. После этого вы можете убедиться в наличии компилятора, проверив существование команды make в вашей системе. Для этого используйте команду which:

$ which make

Output
/usr/bin/make

make – это команда, которую gcc, самый популярный компилятор с открытым исходным кодом, использует для разбора Makefile, то есть инструкции по компиляции, которые предоставляются в каждом пакете. Теперь, если make существует, попробуйте снова установить ваш модуль Python с помощью pip.

Пакеты компиляторов для Red Hat и Rocky Linux

В Red Hat и Rocky Linux вы можете использовать функцию groups менеджера пакетов dnf для установки пакетов, которые включают хорошо поддерживаемую среду компилятора. Группа пакетов, которую вы установите, называется “Development Tools”.

Для установки группы пакетов используйте две команды dnf:

$ sudo dnf groups mark install "Development Tools"
$ sudo dnf groupinstall "Development Tools"

Это также приведет к установке ряда зависимостей. Далее вы можете установить python3-devel, пакет экосистемы Red Hat, который по сути “подключает” компилятор к Python. python3-devel предоставляет всю необходимую конфигурацию бэкенда для автоматического вызова компилятора из Python или из pip:

$ sudo dnf install python3-devel

После этого вы можете убедиться, что компилятор доступен, проверив наличие команды make в вашей системе. Для этого используйте команду which:

$ which make

Output
/usr/bin/make

Если теперь make существует, попробуйте снова установить ваш модуль Python с помощью pip.

Среды компиляторов Windows

Проблемы с компилятором в Windows могут быть сложнее, поскольку существует множество различных способов установки Python, и каждый из них предполагает наличие различных компиляторов:

  • Если вы используете Python с WSL2, это то же самое, что запустить Python под Linux, поэтому вы можете следовать инструкциям по устранению неполадок для вашего дистрибутива (Ubuntu по умолчанию).
  • Если вы используете Python с Anaconda, то она предоставит свои собственные пакеты компилятора в среде conda, что обычно позволяет избежать подобных ошибок.
  • Если вы используете Python в Windows, есть несколько других решений. По умолчанию Python на Windows пытается использовать Microsoft Visual Studio Build Tools. Это очень большая установка, добавляющая множество пакетов экосистемы Windows, которые могут быть вам незнакомы, если вы в основном работаете в облаке, но они должны работать автоматически после установки, как make в Linux.
  • Если у вас уже есть рабочая версия gcc с открытым исходным кодом и инструменты сборки make, установленные в вашей среде Windows с помощью MinGW или Chocolatey, вы можете указать Python использовать этот компилятор, создав файл в Lib/distutils/distutils.cfg относительно пути установки Python и добавив следующее содержимое:
[build]
compiler=mingw32

[build_ext]
compiler=mingw32

Если у вас возникли проблемы с установкой компилятора в Windows, вы можете попробовать установить предварительно скомпилированный пакет wheel для устанавливаемой библиотеки, хотя это менее удобно, чем установка из pip. Кроме того, они обычно доступны только на разовой основе.

Среды компиляторов macOS

macOS включает инструментарий компилятора в пакете разработки Apple, XCode. Как и Visual Studio в Windows, XCode представляет собой полноценную среду разработки со своим собственным интерфейсом, но для компиляции пакетов Python вам не потребуется использовать сам XCode. Вместо этого вам нужно только убедиться, что пакеты XCode установлены. Это можно сделать, выполнив команду xcode-select -install:

$ xcode-select –install

Вам будет предложено начать установку, а затем принять лицензию на программное обеспечение. После этого инструменты будут загружены и установлены автоматически.

Заключение

Экосистема Python очень мощная, она приветлива как для начинающих, так и для опытных разработчиков, но столкновение с пробелами в ее инструментарии может сбить с толку. В этом руководстве вы узнали, как исправить ошибки, которые могут возникнуть в результате отсутствия пакетов компилятора, а также когда Python необходимо скомпилировать низкоуровневый код во время установки модуля.

Перевод статьи «How to Fix Python `No such file or directory` Compiler Errors When Installing Packages».

Сообщение Исправление ошибки ‘No such file or directory’ при установке пакетов появились сначала на pythonturbo.


Source: pythonturbo.ru

ТОП-5 домашних масок на основе йогурта.

ТОП-5 домашних масок на основе йогурта. roman245

Поначалу может показаться странным нанесение на лицо простого йогурта. Однако вы передумаете, как только узнаете о полезных свойствах и эффектном воздействии йогурта.Сам натуральный йогурт содержит ингредиенты, которые могут положительно повлиять на внешний вид кожи, но также хорошо сочетается с другими ингредиентами. В зависимости от потребностей вашей кожи и желаемого эффекта вы можете комбинировать йогурт с другими легкодоступными продуктами. Ваша цель — очистить лицо? Попробуйте йогурт с пищевой содой. Вы заботитесь о гидратации? Добавьте в йогурт мед!Полезные свойства йогуртавитамин B2, B5, B12,кальций,цинкмолочная кислота.Как действует молочная кислота?обладает эффектом против морщин,может справиться с тенями под глазами,разглаживает кожу,предотвращает воспаление,отшелушивает омертвевшие клетки кожи,укрепляет естественный защитный барьер кожи,регенерирует, увлажняет и питает.Молочная кислота в сочетании с витаминами группы B, отвечающими за эластичность кожи, и цинком, благодаря которому замедляются процессы старения кожи, позволяет добиться потрясающих результатов.Можно ли использовать йогуртовые маски ежедневно?Многое зависит от типа конкретной маски и типа кожи. Однако есть мнения, что ничто не мешает использовать йогуртовые маски каждый день — тем более, что йогурт обладает успокаивающими свойствами, поэтому не должен вызывать раздражения.Если у вас нет времени готовить домашнюю маску каждый день, не волнуйтесь. Эффект также должен проявляться после нанесения маски каждые 2-3 дня. Однако ключ к успеху — регулярность и соответствие типа маски вашему типу кожи.Постарайтесь отреагировать на кожные реакции — если вы видите, что она слегка раздражена, измените частоту использования масок.И самое главное — выбирайте натуральный йогурт без дополнительных ингредиентов. Сахар или вещества, отвечающие за вкус йогурта, могут негативно повлиять на состояние кожи — тогда наносить маски каждый день, безусловно, будет не лучшим решением.1. Маска для лица с йогуртом и медомИнгредиенты2 столовые ложки простого йогурта2 столовые ложки меда2 столовые ложки оливкового маслаПриготовление:Тщательно перемешайте ингредиенты до однородной консистенции. Очистите кожу, нанесите маску и смойте через 15 минут.Действие: Прежде всего, она обладает увлажняющими свойствами. Увлажняющая маска из йогурта и меда должна подходить для всех типов кожи, но особенно полезна для сухой и очень сухой кожи.Совет: не забудьте использовать салфетку для лица или полотенце после смывания маски. Нет ничего хуже, чем протереть очищенную кожу несвежим полотенцем.2. Маска для лица с содой и йогуртомИнгредиенты:1 чайная ложка пищевой соды2 чайные ложки простого йогуртаПриготовление: Смешайте все в миске и дайте смеси постоять несколько минут. Затем нанесите маску на лицо и через 15-20 минут умойтесь теплой водой. Нанесите увлажняющий крем на кожу.Действие: Обладает осветляющими и очищающими свойствами. Рекомендуется для жирной и склонной к акне кожи, но у очень чувствительной кожи может вызывать сильное раздражение. Если ваша проблема — экзема на лбу или черные точки на носу — попробуйте эту маску.Совет: у вас очень чувствительная кожа? Перед тем, как сделать маску, сделайте тест на руке. Нанесите немного смеси и через несколько минут проверьте, не отреагировала ли ваша кожа каким-либо тревожным образом.3. Маска из авокадо и йогурта для лицаИнгредиенты:1 чайная ложка йогурта1/4 авокадо1 чайная ложка оливкового маслаПриготовление: Разомните спелое мягкое авокадо вилкой, затем добавьте остальные ингредиенты. Очистите лицо, нанесите маску и смойте через 15 минут. Используйте холодную воду — благодаря этому вы закроете поры. Нанесите увлажняющий крем.Действие: Богатство витаминов и жиров, содержащихся в авокадо и оливковом масле, значительно улучшит состояние обезвоженной кожи. Однако не только сухая кожа поблагодарит вас за эту увлажняющую бомбу — не забывайте, что жирная кожа также нуждается в увлажнении.Совет:если вам не удалось полностью измельчить авокадо, но вы все еще чувствуете комочки на лице, попробуйте массировать их на коже после нанесения.4. Йогуртово-лимонная маска для волосИнгредиенты:4 столовые ложки простого йогуртасок одного лимонаПриготовление: Смешайте ингредиенты, затем вотрите в кожу головы и распределите по части волос. Через 20 минут вымойте волосы как обычно. Используйте мягкий шампунь.Действие: В первую очередь рекомендуется при борьбе с перхотью — смесь йогурта и лимона может оставить в прошлом проблемы с кожей головы. Однако не забывайте использовать его регулярно.Совет: лимон обладает осветляющими свойствами. Часто используется, это может незначительно повлиять на цвет ваших волос!5. Маска из йогурта и лимона для лицаИнгредиенты:2 столовые ложки простого йогурта1 чайная ложка лимонного сокаПриготовление:Достаточно смешать оба ингредиента и нанести на лицо — маску можно наносить точечно, то там, где это необходимо. Будьте осторожны, не наносите маску вокруг глаз — это может вызвать раздражение нежной кожи под глазами. Смойте маску через 15 минут.Действие: Противоугревые и осветляющие средства, благодаря которым не только останавливают образование новых прыщиков, но и делают менее заметными шрамы от прыщей. Поэтому отакая маска особенно рекомендуется людям, для которых обесцвечивание прыщей является проблемой.Совет: наносите маску вечером. После контакта с лимоном кожу нельзя подвергать воздействию солнечных лучей — тогда появится нежелательное изменение цвета.Будьте здоровы!
Source: kakprosto.ru

PyCharm — как активировать виртуальное окружение в терминале по-умолчанию

Для этого нужно изменить терминал по-умолчанию с Power shell на CMD.

  1. File -> Settings -> Tools -> Terminal
  2. Измените значение Shell Path на C:Windowssystem32cmd.exe
  3. Включите чекбокс Activate virtualenv
  4. Нажмите apply и запустите терминал заново

Сообщение PyCharm — как активировать виртуальное окружение в терминале по-умолчанию появились сначала на Веб-студия Юсота.


Source: usota.ru python

CSS — медиа-запросы для различных устройств (@media)

Минимальный набор медиа-запросов для любого сайта на WordPress:

/* Desktop */ 
@media (min-width: 768px) {}

/* Desktop & Tablet */ 
@media (min-width: 481px) {}

/* Tablet landscape */ 
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {}

/* Tablet*/ 
@media (min-width: 481px) and (max-width: 767px) {}

/* Tablet & Mobile */ 
@media (max-width: 767px) {}

/* Mobile */ 
@media (max-width: 480px) {}

Полный гайд от Francesco Baldan

Сообщение CSS — медиа-запросы для различных устройств (@media) появились сначала на Веб-студия Юсота.


Source: usota.ru knowledge-base