การสร้าง DataFrames
สร้าง DataFrames จากพจนานุกรมของรายการ รายการของพจนานุกรม และอาร์เรย์ NumPy จากนั้นตรวจสอบ shape, columns และ dtypes
การสร้าง DataFrames เป็นบทเรียน Pandas & NumPy Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Pandas & NumPy Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Pandas & NumPy Academy มีบทเรียนทั้งหมด 4 บทเรียน
DataFrame คืออะไร
DataFrame คือโครงสร้างข้อมูลแบบสองมิติที่ปรับขนาดได้และมีป้ายกำกับ หรือกล่าวง่าย ๆ คือ ตารางที่ประกอบด้วยแถวและคอลัมน์ คล้ายสเปรดชีตหรือตาราง SQL แต่ละคอลัมน์คือ Pandas Series ที่ใช้ดัชนีแถวร่วมกัน DataFrames สามารถเก็บคอลัมน์ที่มี dtypes ต่างกันได้ จึงเหมาะอย่างยิ่งกับชุดข้อมูลจริงที่มีทั้งตัวเลข ข้อความ และวันที่ปะปนกัน
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Carol'],
'age': [30, 25, 35],
'score': [88.5, 72.0, 95.3]})
print(df)สร้างจากพจนานุกรมของรายการ
วิธีสร้าง DataFrame ที่ใช้กันมากที่สุดคือสร้างจาก พจนานุกรมของรายการ โดยคีย์จะกลายเป็นชื่อคอลัมน์ และรายการจะกลายเป็นค่าของคอลัมน์ รายการทั้งหมดต้องมีความยาวเท่ากัน ดัชนีแถวจะเริ่มต้นเป็น 0, 1, 2, ... เว้นแต่คุณจะระบุด้วย index= รูปแบบนี้สอดคล้องกับวิธีที่มักใช้แทนข้อมูล CSV ใน Python
import pandas as pd
df = pd.DataFrame({
'city': ['Berlin', 'Paris', 'Rome'],
'pop': [3.6, 2.2, 2.8],
'country': ['DE', 'FR', 'IT']
})
print(df.shape) # (3, 3)
print(df.dtypes)สร้างจากรายการของพจนานุกรม
คุณยังสามารถส่ง รายการของพจนานุกรม ได้ โดยพจนานุกรมแต่ละรายการแทนหนึ่งแถว หากพจนานุกรมใดไม่มีคีย์บางรายการ คอลัมน์นั้นจะมีค่า NaN รูปแบบนี้พบได้บ่อยเมื่อรับข้อมูลจาก API แบบ JSON ที่ส่งคืนรายการของออบเจกต์ระเบียน Pandas จะจัดคีย์ทั้งหมดในพจนานุกรมให้สอดคล้องกันโดยอัตโนมัติ เพื่อสร้างชุดคอลัมน์
import pandas as pd
rows = [
{'name': 'Alice', 'age': 30, 'dept': 'Eng'},
{'name': 'Bob', 'age': 25}, # 'dept' missing -> NaN
{'name': 'Carol', 'age': 35, 'dept': 'HR'}
]
df = pd.DataFrame(rows)
print(df)สร้างจากอาร์เรย์ NumPy
การส่งอาร์เรย์ NumPy แบบ 2 มิติจะสร้าง DataFrame ที่มีชื่อคอลัมน์เป็นจำนวนเต็ม (0, 1, 2, ...) และมี RangeIndex เป็นค่าเริ่มต้น ให้ระบุ columns= และ index= เพื่อเพิ่มป้ายกำกับที่สื่อความหมาย วิธีนี้เป็นสะพานเชื่อมระหว่างการคำนวณเชิงตัวเลขด้วย NumPy กับการวิเคราะห์ข้อมูลที่มีป้ายกำกับด้วย Pandas
import pandas as pd
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
df = pd.DataFrame(arr,
columns=['x', 'y', 'z'],
index=['r1', 'r2', 'r3'])
print(df)กำหนดดัชนีแบบกำหนดเองขณะสร้าง
พารามิเตอร์ index= ใช้กำหนดป้ายกำกับแถวในขณะที่สร้างข้อมูล ตัวเลือกที่ใช้กันทั่วไป ได้แก่ สตริงวันที่ รหัสระบุ หรือชื่อหมวดหมู่ ซึ่งช่วยให้การค้นหาแถวมีความหมาย ดัชนีที่เลือกใช้อย่างเหมาะสมทำให้การเข้าถึงด้วย .loc เข้าใจได้ง่าย และเปิดให้ใช้การดำเนินการกับอนุกรมเวลาได้อย่างมีประสิทธิภาพเมื่อดัชนีเป็น DatetimeIndex
import pandas as pd
df = pd.DataFrame(
{'revenue': [100, 200, 150], 'costs': [80, 160, 90]},
index=['Jan', 'Feb', 'Mar']
)
print(df)
print(df.loc['Feb']) # select row 'Feb'ตรวจสอบคอลัมน์ dtypes และดัชนี
แอตทริบิวต์สามรายการช่วยบอกโครงสร้างของ DataFrame ได้ทันที: df.columns ให้ Index ของชื่อคอลัมน์ df.dtypes คืนค่า Series ที่จับคู่แต่ละคอลัมน์กับ dtype ของคอลัมน์นั้น และ df.index อธิบายป้ายกำกับแถว สิ่งเหล่านี้คือการตรวจสอบแรก ๆ ที่ควรทำกับ DataFrame ใหม่ เพื่อทำความเข้าใจว่ามีข้อมูลอะไรอยู่ก่อนเริ่มแปลงข้อมูล
import pandas as pd
df = pd.DataFrame({'a': [1, 2], 'b': [3.0, 4.0], 'c': ['x', 'y']})
print(df.columns) # Index(['a', 'b', 'c'], dtype='object')
print(df.dtypes)
# a int64
# b float64
# c object
print(df.index) # RangeIndex(start=0, stop=2, step=1)ระบุลำดับคอลัมน์
เมื่อสร้างจากพจนานุกรม ลำดับคอลัมน์จะเป็นไปตามลำดับการแทรกคีย์ในพจนานุกรม (Python 3.7 ขึ้นไป) หากต้องการลำดับเฉพาะ ให้ส่งพารามิเตอร์ columns= พร้อมรายการชื่อคอลัมน์ ชื่อใดที่ไม่มีอยู่ในข้อมูลจะสร้างคอลัมน์ที่มีค่า NaN ส่วนชื่อใดที่มีอยู่ในข้อมูลแต่ไม่อยู่ในรายการจะถูกตัดออก วิธีนี้ช่วยให้คุณเลือกและจัดลำดับคอลัมน์ได้ตั้งแต่ตอนสร้าง
import pandas as pd
data = {'c': [3, 6], 'a': [1, 4], 'b': [2, 5]}
df = pd.DataFrame(data, columns=['a', 'b', 'c'])
print(df.columns.tolist()) # ['a', 'b', 'c']สร้างจากพจนานุกรมของ Series
การส่งพจนานุกรมของ Pandas Series จะจัดแนวข้อมูลตามสหภาพของดัชนีทั้งหมด หาก Series ใดไม่มีป้ายกำกับที่มีอยู่ในอีก Series เซลล์ผลลัพธ์ตรงนั้นจะมีค่า NaN วิธีนี้คำนึงถึงดัชนีมากที่สุด และใช้เมื่อรวมคอลัมน์ที่คำนวณแยกกัน ซึ่งอาจมีจำนวนแถวหรือป้ายกำกับต่างกัน
import pandas as pd
s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([10, 20], index=['b', 'c'])
df = pd.DataFrame({'col1': s1, 'col2': s2})
print(df)
# col1 col2
# a 1.0 NaN
# b 2.0 10.0
# c 3.0 20.0shape, len และ size
df.shape คืนค่าทูเพิล (nrows, ncols) len(df) คืนค่าจำนวนแถว และ df.size คืนค่าจำนวนเซลล์ทั้งหมด (แถว × คอลัมน์) สิ่งเหล่านี้เป็นการตรวจสอบความถูกต้องอย่างรวดเร็วหลังโหลดข้อมูล เพื่อยืนยันว่าได้รับจำนวนระเบียนตามที่คาดไว้และไม่มีคอลัมน์ใดถูกตัดออกโดยไม่แจ้งให้ทราบ
import pandas as pd
df = pd.DataFrame({'a': range(5), 'b': range(5), 'c': range(5)})
print(df.shape) # (5, 3)
print(len(df)) # 5
print(df.size) # 15 (5 rows x 3 cols)สร้าง DataFrame ว่าง
คุณสามารถสร้าง DataFrame ว่างพร้อมชื่อคอลัมน์และ dtypes ที่กำหนดไว้ เพื่อใช้เป็นแม่แบบหรือตัวสะสมข้อมูลได้ เพิ่มแถวด้วย pd.concat([df, new_row])m การระบุ dtypes ตั้งแต่ตอนสร้างช่วยหลีกเลี่ยงการอนุมานชนิดข้อมูลที่ใช้เวลามากเมื่อเพิ่มแถวภายหลัง DataFrame ว่างยังมีประโยชน์สำหรับใช้เป็นจุดเริ่มต้นในลูปรวบรวมข้อมูลแบบวนซ้ำ
import pandas as pd
df = pd.DataFrame(columns=['name', 'score'])
new_row = pd.DataFrame([{'name': 'Alice', 'score': 90}])
df = pd.concat([df, new_row], ignore_index=True)
print(df)คัดลอก DataFrame
การกำหนด DataFrame ให้กับตัวแปรใหม่จะสร้าง การอ้างอิง ไม่ใช่สำเนา ดังนั้นการแก้ไขตัวหนึ่งจะทำให้อีกตัวถูกแก้ไขด้วย ใช้ df.copy() เพื่อสร้างสำเนาที่เป็นอิสระ วิธีนี้สำคัญก่อนทำการแปลงข้อมูลที่ไม่ต้องการให้มีผลกับต้นฉบับ หรือเมื่อต้องการเก็บข้อมูลสำรองก่อนทำความสะอาดไว้ขณะสร้างข้อมูลฉบับที่ทำความสะอาดแล้ว
import pandas as pd
original = pd.DataFrame({'a': [1, 2, 3]})
ref = original # same object!
copy = original.copy() # independent copy
ref['a'] = 99
print(original['a'].tolist()) # [99 99 99] -- ref modified original
print(copy['a'].tolist()) # [1, 2, 3] -- copy unchangedตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจเกี่ยวกับการสร้าง DataFrame จากบทเรียนนี้
ทบทวนบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า DataFrames สร้างได้จากพจนานุกรมของรายการ รายการของพจนานุกรม หรืออาร์เรย์ NumPy แอตทริบิวต์ columns, dtypes และ index อธิบายโครงสร้างของตาราง และ ต้องใช้ df.copy() หากต้องการสำเนาที่เป็นอิสระแทนการอ้างอิง บทถัดไปเราจะเลือกคอลัมน์และแถวที่ต้องการโดยใช้สัญกรณ์วงเล็บ .loc และ .iloc
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “การสร้าง DataFrames” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสร้าง DataFrames” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Pandas & NumPy Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Pandas & NumPy Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสร้าง DataFrames”
สร้าง DataFrames จากพจนานุกรมของรายการ รายการของพจนานุกรม และอาร์เรย์ NumPy จากนั้นตรวจสอบ shape, columns และ dtypes คุณปฏิบัติ Pandas & NumPy Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Pandas & NumPy Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Pandas & NumPy Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การสร้าง DataFrames” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Pandas & NumPy Academy นี้ได้ไหม
ได้ บทเรียน Pandas & NumPy Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้าง DataFrames
- การเลือกคอลัมน์และแถว
- การเพิ่มและลบคอลัมน์
- การตรวจสอบ DataFrame เบื้องต้น