Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะขูดผ่านไฟล์มีเดียใน Python ได้อย่างไร?


แนะนำตัว

ในการตั้งค่าธุรกิจขององค์กรในโลกแห่งความเป็นจริง ข้อมูลส่วนใหญ่อาจไม่ถูกเก็บไว้ในไฟล์ข้อความหรือ Excel ฐานข้อมูลเชิงสัมพันธ์ที่ใช้ SQL เช่น Oracle, SQL Server, PostgreSQL และ MySQL มีการใช้งานกันอย่างแพร่หลาย และฐานข้อมูลทางเลือกจำนวนมากได้รับความนิยมอย่างมาก

ทางเลือกของฐานข้อมูลมักจะขึ้นอยู่กับประสิทธิภาพ ความสมบูรณ์ของข้อมูล และความต้องการในการขยายขนาดของแอปพลิเคชัน

ทำอย่างไร..

ในตัวอย่างนี้ เราจะสร้างฐานข้อมูล sqlite3 อย่างไร sqllite ได้รับการติดตั้งตามค่าเริ่มต้นด้วยการติดตั้ง python และไม่ต้องการการติดตั้งเพิ่มเติมใดๆ หากคุณไม่แน่ใจโปรดลองด้านล่าง เราจะนำเข้าหมีแพนด้าด้วย

การโหลดข้อมูลจาก SQL ลงใน DataFrame ค่อนข้างตรงไปตรงมา และแพนด้ามีฟังก์ชันบางอย่างที่ช่วยลดความซับซ้อนของกระบวนการ

import sqlite3
import pandas as pd
print(f"Output \n {sqlite3.version}")

ผลลัพธ์

2.6.0

ผลลัพธ์

# connection object
conn = sqlite3.connect("example.db")
# customers data
customers = pd.DataFrame({
"customerID" : ["a1", "b1", "c1", "d1"]
, "firstName" : ["Person1", "Person2", "Person3", "Person4"]
, "state" : ["VIC", "NSW", "QLD", "WA"]
})
print(f"Output \n *** Customers info -\n {customers}")

ผลลัพธ์

*** Customers info -
customerID firstName state
0 a1 Person1 VIC
1 b1 Person2 NSW
2 c1 Person3 QLD
3 d1 Person4 WA
# orders data
orders = pd.DataFrame({
"customerID" : ["a1", "a1", "a1", "d1", "c1", "c1"]
, "productName" : ["road bike", "mountain bike", "helmet", "gloves", "road bike", "glasses"]
})

print(f"Output \n *** orders info -\n {orders}")

ผลลัพธ์

*** orders info -
customerID productName
0 a1 road bike
1 a1 mountain bike
2 a1 helmet
3 d1 gloves
4 c1 road bike
5 c1 glasses
# write to the db
customers.to_sql("customers", con=conn, if_exists="replace", index=False)
orders.to_sql("orders", conn, if_exists="replace", index=False)

ผลลัพธ์

# frame an sql to fetch the data.
q = """
select orders.customerID, customers.firstName, count(*) as productQuantity
from orders
left join customers
on orders.customerID = customers.customerID
group by customers.firstName;
"""

ผลลัพธ์

# run the sql.
pd.read_sql_query(q, con=conn)

ตัวอย่าง

7.นำทุกอย่างมารวมกัน

import sqlite3
import pandas as pd
print(f"Output \n {sqlite3.version}")
# connection object
conn = sqlite3.connect("example.db")
# customers data
customers = pd.DataFrame({
"customerID" : ["a1", "b1", "c1", "d1"]
, "firstName" : ["Person1", "Person2", "Person3", "Person4"]
, "state" : ["VIC", "NSW", "QLD", "WA"]
})

print(f"*** Customers info -\n {customers}")

# orders data
orders = pd.DataFrame({
"customerID" : ["a1", "a1", "a1", "d1", "c1", "c1"]
, "productName" : ["road bike", "mountain bike", "helmet", "gloves", "road bike", "glasses"]
})

print(f"*** orders info -\n {orders}")

# write to the db
customers.to_sql("customers", con=conn, if_exists="replace", index=False)
orders.to_sql("orders", conn, if_exists="replace", index=False)

# frame an sql to fetch the data.
q = """
select orders.customerID, customers.firstName, count(*) as productQuantity
from orders
left join customers
on orders.customerID = customers.customerID
group by customers.firstName;

"""

# run the sql.
pd.read_sql_query(q, con=conn)

ผลลัพธ์

2.6.0
*** Customers info -
customerID firstName state
0 a1 Person1 VIC
1 b1 Person2 NSW
2 c1 Person3 QLD
3 d1 Person4 WA
*** orders info -
customerID productName
0 a1 road bike
1 a1 mountain bike
2 a1 helmet
3 d1 gloves
4 c1 road bike
5 c1 glasses
customerID firstName productQuantity
____________________________________
0      a1         Person1     3
1 c1 Person3 2
2 d1 Person4 1