English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Операции SQL Pandas

Конкретные примеры 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 условия запроса

Фильтрация с помощью подзапроса 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.

Группировка GroupBy

Эта операция получит количество записей в каждой группе всего набора данных. Например, запрос на分组 по полу и количество:

 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

Просмотр количества строк N

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