Python Pandas - เปรียบเทียบกับ SQL
เนื่องจากผู้มีโอกาสเป็นผู้ใช้ Pandas หลายคนมีความคุ้นเคยกับ SQL อยู่บ้างหน้านี้จึงมีขึ้นเพื่อให้ตัวอย่างการดำเนินการต่างๆของ 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()
มัน output มีดังนี้ -
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 การเลือกทำได้โดยใช้รายการคอลัมน์ที่คั่นด้วยจุลภาคที่คุณเลือก (หรือ a * เพื่อเลือกคอลัมน์ทั้งหมด) -
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)
มัน output มีดังนี้ -
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 ของ *)
ที่ไหน
การกรองใน SQL ทำได้ผ่าน WHERE clause
SELECT * FROM tips WHERE time = 'Dinner' LIMIT 5;
DataFrames สามารถกรองได้หลายวิธี ใช้งานง่ายที่สุดซึ่งใช้การสร้างดัชนีแบบบูลีน
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)
มัน output มีดังนี้ -
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(*)
FROM tips
GROUP BY sex;
เทียบเท่านุ่นจะเป็น -
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()
มัน output มีดังนี้ -
sex
Female 87
Male 157
dtype: int64
N แถวบนสุด
SQL ส่งคืนไฟล์ top n rows โดยใช้ LIMIT -
SELECT * FROM tips
LIMIT 5 ;
เทียบเท่านุ่นจะเป็น -
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
มัน output มีดังนี้ -
smoker day time
0 No Sun Dinner
1 No Sun Dinner
2 No Sun Dinner
3 No Sun Dinner
4 No Sun Dinner
นี่คือการใช้งานพื้นฐานบางอย่างที่เราเปรียบเทียบซึ่งเราได้เรียนรู้ในบทก่อนหน้าของห้องสมุดแพนด้า