English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Конкретные примеры SQL-операций Pandas
Поскольку многие потенциальные пользователи Pandas знакомы с SQL, данная страница направлена на предоставление примеров того, как использовать Pandas для выполнения различных SQL-операций.
import pandas as pd url = 'https://raw.github.com/pandasdev/' pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) print tips.head()
Результат выполнения таков:
total_bill tip sex smoker day time size 0 16.99 1.01 Female No Sun Dinner 2 1 10.34 1.66 Male No Sun Dinner 3 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2 4 24.59 3.61 Female No Sun Dinner 4
В SQL выбор выполняется с помощью списка разделенных запятыми имен所选 столбцов (или с помощью * для выбора всех столбцов):
SELECT total_bill, tip, smoker, time from tips LIMIT 5;
Используя Pandas, выберите столбцы, передав список имен столбцов в DataFrame:
tips[['total_bill', 'tip', 'smoker', 'time']].head(5)
Давайте посмотрим на полный пример:
import pandas as pd url = 'https://raw.github.com/pandasdev/' pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) print tips[['total_bill', 'tip', 'smoker', 'time']].head(5)
Результат выполнения таков:
total_bill tip smoker time 0 16.99 1.01 No Dinner 1 10.34 1.66 No Dinner 2 21.01 3.50 Нет Ужин 3 23.68 3.31 Нет Ужин 4 24.59 3.61 Нет Ужин
Вызов DataFrame без списка имен столбцов будет отображать все столбцы (аналогично SQL *).
Фильтрация с помощью подзапроса WHERE в SQL.
SELECT * FROM tips WHERE time = 'Dinner' LIMIT 5;
DataFrame можно фильтровать несколькими способами. Самый trực tiếp cách là sử dụng chỉ mục boolea.
tips[tips['time'] == 'Dinner'].head(5)
Давайте рассмотрим полный пример
import pandas as pd url = 'https://raw.github.com/pandasdev/' pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) print(tips[tips['time'] == 'Dinner'].head(5))
Результат выполнения таков:
total_bill tip sex smoker day time size 0 16.99 1.01 Женский Нет Воскресенье Ужин 2 1 10.34 1.66 Мужской Нет Воскресенье Ужин 3 2 21.01 3.50 Мужской Нет Воскресенье Ужин 3 3 23.68 3.31 Мужской Нет Воскресенье Ужин 2 4 24.59 3.61 Женский Нет Воскресенье Ужин 4
Эта команда передает серию объектов True / False DataFrame и возвращает все строки с True.
Эта операция получит количество записей в каждой группе всего набора данных. Например, запрос на分组 по полу и количество:
SELECT sex, count(*) from tips GROUP BY sex;
В Pandas это действие выполняется следующим образом:
tips.groupby('sex').size()
Давайте рассмотрим полный пример
import pandas as pd url = 'https://raw.github.com/pandasdev/' pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) print tips.groupby('sex').size()
Результат выполнения таков:
sex Female 87 Male 157 dtype: int64
SQL использует LIMIT для возврата N строк:
SELECT * from tips LIMIT 5 ;
Операции в Pandas выглядят следующим образом:
tips.head(5)
Давайте рассмотрим полный пример
import pandas as pd url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) tips = tips[['smoker', 'day', 'time']].head(5) print tips
Результат выполнения таков:
smoker day time 0 No Sun Dinner 1 No Sun Dinner 2 No Sun Dinner 3 No Sun Dinner 4 No Sun Dinner