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

عمليات SQL في Pandas

Pandas SQL操作的具体实例

由于许多潜在的Pandas用户都对SQL有所了解,因此本页面旨在提供一些示例说明如何使用Pandas执行各种SQL操作。

 مثال
 url = 'https://raw.github.com/pandasdev/'
 pandas/master/pandas/tests/data/tips.csv'
 url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv'
 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
 من tips
 LIMIT 5;

使用Pandas,通过将列名称列表传递到DataFrame来完成列选择:

 tips[['total_bill', 'tip', 'smoker', 'time']].head(5)

让我们看一个完整的实例:

 مثال
 url = 'https://raw.github.com/pandasdev/'
 pandas/master/pandas/tests/data/tips.csv'
  
 url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv'
 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               No                       Dinner
3                     23.68         3.31               No                       Dinner
4                     24.59         3.61               No                       Dinner

عرض DataFrame بدون قائمة من الأعمدة سيظهر جميع الأعمدة (مثل * في SQL).

استعلام WHERE

تصفية باستخدام جملة WHERE في SQL.

 SELECT * FROM tips WHERE time = 'Dinner' LIMIT 5;

يمكن تصفية DataFrame بطرق متعددة. الطريقة الأكثر وضوحًا هي استخدام المؤشرات البولية.

 tips[tips['time'] == 'Dinner'].head(5)

نحن ننظر في ما يلي في Pandas:

 مثال
 url = 'https://raw.github.com/pandasdev/'
 pandas/master/pandas/tests/data/tips.csv'
 url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv'
 print(tips[tips['time'] == 'Dinner'].head(5))

النتيجة التشغيلية كالتالي:

     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

الجملة أعلاه تمرر سلسلة من العناصر الحقيقية / الزائفة إلى DataFrame وتعيد جميع الصفوف التي تحتوي على True.

تجميع GroupBy

هذه العملية تحصل على عدد السجلات في كل مجموعة في مجموعة البيانات الكاملة. على سبيل المثال، استعلام عن التجميع حسب الجنس والعدد:

 SELECT sex, count(*)
 من tips
 GROUP BY sex;

في Pandas هو التشغيل التالي:

 tips.groupby('sex').size()

نحن ننظر في ما يلي في Pandas:

 مثال
 url = 'https://raw.github.com/pandasdev/'
 pandas/master/pandas/tests/data/tips.csv'
 url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv'
 print tips.groupby('sex').size()

النتيجة التشغيلية كالتالي:

 sex
 طباعة نصائح.groupby('sex').size()
 sex
 أنثى 87

ذكر 157

dtype: int64

 إسترجاع N عدد الأسطر
 استخدام LIMIT لاسترداد N سطر

SELECT * from tips

 LIMIT 5 ;

نحن ننظر في ما يلي في Pandas:

 مثال
 إدراج pandas كـ pd
 url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv'
 نصائح = نصائح[['smoker', 'day', 'time']].head(5)
 نصائح الطباعة

النتيجة التشغيلية كالتالي:

     يوم المدخن الوقت
0      لا   مائدة شمسية   العشاء
1      لا   مائدة شمسية   العشاء
2      لا   مائدة شمسية   العشاء
3      لا   مائدة شمسية   العشاء
4      لا   مائدة شمسية   العشاء